在JavaScript中,有多種排序方式可供選擇。以下是幾種常見的排序方式以及對應(yīng)的示例:文章來源:http://www.zghlxwxcb.cn/news/detail-621957.html
-
冒泡排序(Bubble Sort): 冒泡排序是一種比較簡單的排序算法,它重復(fù)地比較相鄰的兩個元素并交換位置,直到整個數(shù)組排序完成。
function bubbleSort(arr) { const len = arr.length; for (let i = 0; i < len - 1; i++) { for (let j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j + 1]) { // 交換位置 [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]; } } } return arr; } const nums = [5, 3, 8, 4, 2]; const sortedNums = bubbleSort(nums); // [2, 3, 4, 5, 8]
-
插入排序(Insertion Sort): 插入排序的思想是將數(shù)組分為已排序和未排序兩部分,每次從未排序部分取出一個元素插入到已排序部分的正確位置。
function insertionSort(arr) { const len = arr.length; for (let i = 1; i < len; i++) { let current = arr[i]; let j = i - 1; while (j >= 0 && arr[j] > current) { arr[j + 1] = arr[j]; j--; } arr[j + 1] = current; } return arr; } const nums = [5, 3, 8, 4, 2]; const sortedNums = insertionSort(nums); // [2, 3, 4, 5, 8]
-
選擇排序(Selection Sort): 選擇排序的思想是每次從未排序部分選擇最?。ɑ蜃畲螅┑脑?,放到已排序部分的末尾。
function selectionSort(arr) { const len = arr.length; for (let i = 0; i < len - 1; i++) { let minIndex = i; for (let j = i + 1; j < len; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } if (minIndex !== i) { [arr[i], arr[minIndex]] = [arr[minIndex], arr[i]]; // 交換位置 } } return arr; } const nums = [5, 3, 8, 4, 2]; const sortedNums = selectionSort(nums); // [2, 3, 4, 5, 8]
-
快速排序(Quick Sort): 快速排序是一種常用的排序算法,它通過選擇一個基準元素,將數(shù)組劃分為左右兩個子數(shù)組,然后遞歸地對子數(shù)組進行排序。
function quickSort(arr) { if (arr.length <= 1) { return arr; } const pivotIndex = Math.floor(arr.length / 2); const pivot = arr.splice(pivotIndex, 1)[0]; const left = []; const right = []; for (let 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)); } const nums = [5, 3, 8, 4, 2]; const sortedNums = quickSort(nums); // [2, 3, 4, 5, 8]
這些是幾種常見的排序方式和對應(yīng)的示例。值得注意的是,在實際應(yīng)用中,可以根據(jù)排序需求和數(shù)據(jù)規(guī)模選擇合適的排序算法。另外,JavaScript還提供了內(nèi)置的排序函數(shù)
Array.prototype.sort()
,可以直接調(diào)用該函數(shù)對數(shù)組進行排序。文章來源地址http://www.zghlxwxcb.cn/news/detail-621957.html
到了這里,關(guān)于js常用的幾種排序方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!