1. 程式人生 > >從零開始學算法 - 選擇排序

從零開始學算法 - 選擇排序

mini index pan min code spa 基本實現 div color

題幹:n個數字從小到大排列。 算法思路:遍歷數字,將最小的數字放到起始位置,依次循環。 基本實現: 思路:用兩層循環實現,外層循環控制整體遍歷的次數,內層循環控制當次遍歷。
var array = [65,97,76,13,27,49,58];
for(var i=0;i<array.length;i++){
  var min = array[i];
  for(var j=i+1;j<array.length;j++){
    if(min>array[j]){
      var tmp = min;
      min=array[j];
      array[j]
=tmp;     }   }   array[i]=min; }

優化: 思路:減少交換次數,確定了最小數的位置後再交換。
var array = [65,97,76,13,27,49,58];
for(var i=0;i<array.length;i++){
  var minIndex = i;
  for(var j=i+1;j<array.length;j++){
    if(array[minIndex]>array[j]){
      minIndex = j;
    }
  }
  if(minIndex != i){
    var tmp = array[minIndex];
    array[minIndex] 
= array[i];     array[i] = tmp;   } }

從零開始學算法 - 選擇排序