色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 排序代碼

宋博文1年前7瀏覽0評論

JavaScript是一門強大的編程語言,它常用于網頁開發。其中一個常見的應用是排序。通過JS排序算法,我們可以將一個未經排序的數組或列表按照一定順序排列。以下是介紹JS排序算法的內容。

首先是冒泡排序法(Bubble Sort)。這通常是最簡單也是最慢的排序算法。它重復地遍歷過要排序的列表,比較相鄰的兩個元素,如果順序不對就交換他們。舉個例子,我們可以這樣表述冒泡排序:假設我們有一個數組 [5,1,4,2,8],我們需要將它按照從小到大的順序排列。通過冒泡排序,第一次遍歷將會比較5和1,發現5比1大,就交換位置,結果 [1,5,4,2,8]。第二次遍歷比較5和4,發現5比4大,交換位置,結果 [1,4,5,2,8]。第三次遍歷比較5和2,又交換位置,結果 [1,4,2,5,8]。第四次遍歷比較5和8,位置不需要交換,結果 [1,4,2,5,8]。我們發現在第一輪遍歷后,8已經處于數組正確的位置上,因此最多不會超過四次遍歷。

function bubbleSort(arr){
var len = arr.length;
for (var i = 0; i< len - 1; i++){             
for(var j = 0; j< len - 1 - i; j++){    
if (arr[j] >arr[j+1]) {            
var temp = arr[j+1];        
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}

接下來是插入排序法(Insertion Sort)。該算法的基本思路就是將數組分為已排序和未排序兩部分,遍歷未排序選項卡,依次將選項卡插入到已排序卡牌序列中,方法是比較和交換次數比起冒泡排序少得多。以 [5,1,4,2,8] 為例,我們通過選擇排序,將數組依次排序:[1,5,4,2,8]、[1,4,5,2,8]、[1,2,4,5,8]、[1,2,4,5,8],我們完成了排序。

function insertionSort(arr) {
var len = arr.length;
var preIndex, current;
for (var i = 1; i< len; i++) {
preIndex = i - 1;
current = arr[i];
while(preIndex >= 0 && arr[preIndex] >current) {
arr[preIndex+1] = arr[preIndex];
preIndex--;
}
arr[preIndex+1] = current;
}
return arr;
}

最后是快速排序法(Quick Sort)。顧名思義,這是一種速度快的排序算法。它的原理是選擇一個基準值,將數組分成兩個子組:一個小于基準值的子組,一個大于基準值的子組。在每個子組中,依次選取基準值并對其子集應用快速排序,直到得到已排序的結果。以 [5,1,4,2,8] 為例,我們選定基準值為5,然后將數組分為 [1,4,2] 和 [8] 兩個子組。在子組 [1,4,2] 中我們選擇基準值為1,將其分為 [ ]、[4,2]、[1] 三段。最后將這三者合并得到已排序的結果。

function quickSort(arr) {
if (arr.length<= 1) { return arr; }
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice(pivotIndex, 1)[0];
var left = [];
var right = [];
for (var i = 0; i< arr.length; i++){
if (arr[i]< pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot], quickSort(right));
}

總之,通過以上的JS排序算法介紹,我們可以看到三個常見的排序算法:冒泡排序、插入排序和快速排序。其中,冒泡排序最簡單,但是效率最慢;插入排序比冒泡排序要快一些,但還是不夠快;最快的是快速排序。學習JavaScript排序算法,讓我們在實際應用中更好地掌握和運用它。