数组常见的三种排序方法

数组常见的三种排序方法

系列文章目录

文章目录

系列文章目录前言一、冒泡排序二、快速排序三、插入排序四、总结

前言

这是我整理的数组的三种常见排序方法,如有问题欢迎指出!

一、冒泡排序

冒泡排序,是一种简单的排序算法,它通过重复遍历待排序的数列,比较相邻元素并交换它们的位置,直到整个数列有序;这个过程就像气泡一样,让较大的元素逐渐“浮”到数组的顶端;

从头到尾遍历整个数列,比较相邻的元素; 如果前一个元素大于后一个元素,则交换它们的位置; 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对; 对整个数组除了最后一个元素的元素重复上述过程,每次需要交换的元素越来越少,直到没有需要交换的元素为止;

let arr = [4, 5, 3, 21, 8, 90, 6];

for (let i = 0; i < arr.length; i++) {

for (let j = i - 1; j < arr.length; j++) {

if (arr[j] > arr[j + 1]) {

let temp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = temp;

}

}

}

console.log(arr);//[3, 4, 5, 6, 8, 21, 90]

二、快速排序

快速排序是一种运行高效,应用广泛的排序算法,其核心操作是:选择数组中某个元素作为“中间数”,将所有小于中间数的元素放在其左边,大于基准数的元素放在其右边,从而将数组划分成左子数组和右子数组,再分别递归左子数组和右子数组。

let arr = [4, 5, 3, 21, 8, 90, 6];

function quickSort(arr) {

if (arr.length <= 1) {

return arr

}

let left = [];

let right = [];

let center = arr[Math.floor(arr.length / 2)];

for (let i = 0; i < arr.length; i++) {

if (arr[i] < center) {

left.push(arr[i])

} else if (arr[i] > center) {

right.push(arr[i])

}

}

return quickSort(left).concat([center], quickSort(right))

}

console.log(quickSort(arr));//[3, 4, 5, 6, 8, 21, 90]

三、插入排序

1.从第二个元素开始遍历: 将数组视为两部分,第一部分是已排序的部分,初始只有第一个元素;第二部分是未排序的部分,包括剩余的元素。

2.找到合适的位置插入: 对于未排序部分的每个元素,与已排序部分的元素依次比较,找到合适的位置插入,使得已排序部分依然有序。

3.重复操作: 重复以上步骤,直至整个数组有序。

function insertionSort(arr) {

const n = arr.length;

for (let i = 1; i < n; 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 arr3 = [4, 5, 3, 21, 8, 90, 6];

console.log(insertionSort(arr3)); // 输出 [3, 4, 5, 6, 8, 21, 90]

四、总结

冒泡排序的使用最为广泛,其次是快速排序,再就是插入排序;虽然后两个排序方式使用相对少一些,但还是要知道这两种方法的存在。

相关推荐

《火影》九大尾兽是实体化查克拉,它们会长大,同样也会死吗?
【Thermal】内核框架模型之thermal温控子系统总框架分析
阿衰漫画,阿衰漫画免费阅读,阿衰漫画在线观看
365被限制了让提款

阿衰漫画,阿衰漫画免费阅读,阿衰漫画在线观看

06-29 👁️ 2505
引导狗狗干自己哪里
365彩票还能玩吗

引导狗狗干自己哪里

06-30 👁️ 8957
豆沙馅的做法步骤
365被限制了让提款

豆沙馅的做法步骤

07-04 👁️ 976
英格兰历届世界杯战绩&最佳射手:1次夺冠,莱因克尔凯恩获金靴
女武神图鉴
365商城官网

女武神图鉴

07-03 👁️ 4365
寺院里的佛像到底能不能拍摄呢?
365彩票还能玩吗

寺院里的佛像到底能不能拍摄呢?

07-05 👁️ 2543
恶意做空股票是什么意思
365被限制了让提款

恶意做空股票是什么意思

06-29 👁️ 2060