冒泡排序
比較相鄰的兩個元素,如果第一個元素比第二個元素大,則交換它倆的位置。
對每一對相鄰的元素做以上同樣的功能,從開始第一個比較到最后一個,在這一輪比較中,就能確定出最大的那個數,并且放在了數組的最后一個位置。
以上操作是第一輪,以后每一輪都重復執行以上的操作,但每輪后都會比之前少比較一次。(因為每輪后能固定出來一個最大值)。
** 示例 (從小到大排序) **
var arr = [5,3,1,6,7,2,8,4];
//排序的輪數遍歷
for (var i = 0; i < arr.length - 1; i++){
//每輪執行的次數遍歷
for (var j = 0; j < arr.length - 1 - i; j++){
if (arr[j] >= arr[j + 1]{
//比較相鄰的兩個元素,并且每一輪都是從下標為0開始,所以是 j 和 j + 1 比較,比較完之后,交換兩個元素的位置
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
選擇排序
- 每輪從數組中的一個位置的元素依次和剩下的元素進行大小比較,小的值放在第一個位置。每輪都會固定出第一個位置。以后重復執行這個排序的規則。
** 示例 (從小到大排序) **
var arr = [5, 3, 1, 6, 7, 2, 8, 4];
//輪數的循環
for (var i = 0; i < arr.length - 1; i++) {
//每輪的次數 循環
for (var j = i + 1; j < arr.length; j++) {
//比較i 和 j 位置的元素大小,并進行位置交換
if (arr[i] >= arr[j]) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
console.log(arr);