從零開始學算法 - 選擇排序
阿新 • • 發佈:2018-10-23
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; } }
從零開始學算法 - 選擇排序