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

javascript4種排序

林國瑞1年前6瀏覽0評論

JavaScript是一門高級的編程語言,專注于網頁開發。它的應用十分廣泛,其中主要涉及到數據的處理。排序是數據處理中十分重要的一部分,JavaScript提供了多種排序算法來方便我們對各種數據進行排序。

JavaScript中常用的排序算法包括多種,下面我們來介紹四種常用的排序算法:

冒泡排序

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

冒泡排序算法可以說是最簡單明了的一種排序,它的排序方式是兩兩比較,然后交換位置,直到所有的元素都排好序為止。

選擇排序

function selectionSort(arr) {
let len = arr.length;
let minIndex, temp;
for (let i = 0; i < len - 1; i++) {
minIndex = i;
for (let j = i + 1; j < len; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
return arr;
}

選擇排序是一種簡單選擇排序,它的原理是每一次排序對比之后,都選擇當前的最小值,逐步將其挪到排好序的部分去。

插入排序

function insertionSort(arr) {
let len = arr.length;
let preIndex, current;
for (let 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;
}

插入排序的原理和打撲克牌差不多,它的主要過程是對當前元素與前驅元素進行對比,并將元素插入到正確的位置,這個排序方法在每一次對比中,都需要從后往前進行查找。

快速排序

function quickSort(arr, left, right) {
let len = arr.length;
let partitionIndex;
if (left < right) {
partitionIndex = partition(arr, left, right);
quickSort(arr, left, partitionIndex - 1);
quickSort(arr, partitionIndex + 1, right);
}
return arr;
}
function partition(arr, left, right) {
let pivot = left;
let index = pivot + 1;
for (let i = index; i <= right; i++) {
if (arr[i] < arr[pivot]) {
swap(arr, i, index);
index++;
}
}
swap(arr, pivot, index - 1);
return index - 1;
}
function swap(arr, i, j) {
let temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}

快速排序是一種使用分治思想來進行排序的算法,它通過對數組進行遞歸的劃分,將整個數組分為左、右兩部分,直到最后排序結束。

以上四種排序算法都有不同的應用場景,在實際開發中我們可以根據不同的數據結構、數據類型、數據量大小等方面進行選擇,來達到最優的排序效果。