1. 程式人生 > >選擇排序的JavaScript實現

選擇排序的JavaScript實現

== ava break ons als sort rip chan arr

思想

原址比較的排序算法。即首先找到數結構中的最小值並將其放置在第一位,然後找到第二小的值將其放置在第二位...以此類推。

代碼

function selectionSort(arr) {
  const length = arr.length;
  for (let i = 0; i < length - 1; i++) {
    let minIndex = i;
    let changeOccur = false;

    for (let j = i + 1 ; j < length ; j++) {
      if (arr[j] < arr[minIndex]) {
        minIndex = j;
        changeOccur = true;
      }
    }

    if(!changeOccur) {
      break;
    }
    if (minIndex !== i) {
      const temp = arr[i];
      arr[i] = arr[minIndex];
      arr[minIndex] = temp;
    }
    
  }
}

性能分析

  • 時間復雜度:最好O(n),平均、最壞O(n^2)
  • 空間復雜度: O(1), 不穩定

選擇排序的JavaScript實現