1、氣泡排序
思想:比較相鄰的前後兩個資料,如果前面的大於後面的,就交換兩個資料位置,知道遍歷完陣列,排序完成。
實現:
functionbubblesort(arr) }}
return
arr;
}console.log(bubblesort([5,9,8,6,2,3,7])
2、選擇排序
思想:第一次遍歷陣列找出最小的值與第乙個元素交換,第二次遍歷n-1個資料,找出最小的值與第二個元素交換,直到排序完成。
實現:
functionselectsort(arr)
temp =arr[i];
arr[i] =arr[min];
arr[min] =temp;
} return
arr;
}console.log(selectsort([6,5,2,4,3,7]))
3、快速排序
思想:先從陣列找設定乙個基準數(任意,一般取中間);將比基準數打的全放在它的右邊,小的放在左邊;在對左右兩個區間重複第1、2步,直到區間各剩乙個數。
實現:
functionquicksort(arr)
var pivoindex = math.floor(arr.length / 2);//
取中間數為基數
var pivot = arrr.splice(pivoindex,1)[0]; //
取基準點值,splice(index,1)函式可以返回陣列中被刪除的那個數
var left = ;//
存放比基準點小的陣列
var right = ; //
存放比基準點大的陣列
for(var i = 0;i < arr.length;i++)
else}//
遞迴執行以上操作,對左右兩個陣列進行操作,直到陣列長度<=1
return
quicksort(left).concat([pivot],quick(right))
}
4、插入排序
思想:從第乙個元素開始,該元素可以認為已經被排序;
取出下乙個元素,在已經排序的元素序列中從後向前掃瞄;
如果該元素(已排序)大於新元素,將該元素移到下一位置;
重複步驟3,直到找到已排序的元素小於或者等於新元素的位置;
將新元素插入到該位置後;
重複步驟2~5。
functioninsertsort(arr)
arr[j + 1] =key;
}return
arr;
}
js常見的幾種排序演算法
最近自己總結了js常見的幾種排序演算法,並進行了簡單的測試和對比。包括 氣泡排序,插入排序,選擇排序,快速排序,歸併排序等。氣泡排序比較簡單,就是從前往後依次比較相鄰的兩個值,如果前乙個大於後乙個值就交換位置,一趟之後最大的值就排在最後一位了,然後同理在排序剩下的n 1 n 2 個數 如下 func...
js陣列中的幾種排序
每輪依次比較相鄰兩個數的大小,後面比前面小則交換 var b 0 設定用來儲存調換位置的值 var a 1,9,33,2,5,34,23,98,14 氣泡排序 for var i 0 i i console.log a 1,2,5,9,14,23,33,34,98 function sortnumb...
JavaScript實現的幾種排序
原理 氣泡排序的過程就是將陣列中相鄰的兩個元素進行比較,如果前面的元素比後面的元素要大交換位置,否則位置不變 舉個栗子 有陣列 arr 3,5,4,2,1 第一輪迴圈 3和5比較,3小於5兩者位置不變,接下來5和4比較,5大於4,兩者交換位置,接著5和2比較,5 2兩者交換位置,繼續5和1 比較 5...