几种常见的排序
大家好,我是猿二哥,今天我想和大家一起分享一下我最近的学习数据结构的心得,那好现在咱们从最简单的数据结构的排序算法开始。
今天呢要学习的排序算法主要有冒泡排序,选择排序和插入排序
啥也不说先上代码 ->冒泡排序
let arr = [3, 2, 4, 5, 1, 6, 7, 9, 8];
bubbleSort(arr);
function bubbleSort(arr) {
let len = arr.length;
for (let i = 0; i < len - 1; i++) {
//这里之所以要减去1是因为length 长度是9,下标是从0开始的
for (let j = 0; j < len - 1 - i; j++) {
//去掉前面已经确定好的数字
if (arr[j + 1] < arr[j]) {
let temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
console.log(arr);
}
}
}
啥也不说先上代码 ->选择排序
选择排序的算法是,以此拿一个最小的数去比较数组后面的数,谁小谁就交换下标
function selectSort(arr) {
let len = arr.length;
let minIndex;
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;
}
}
let temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
console.log(arr);
}
}
啥也不说先上代码 ->插入排序
function insertSort(arr) {
let len = arr.length;
let preIndex, current;
for (let i = 0; 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;
console.log(arr);
}
}