这是学习笔记,想要查看动态效果的,可以查看排序
一、冒泡排序
描述:比较相邻的元素,如果前者比后者大,就交换两者。
时间复杂度:O(n^2)
/*
* @desc 冒泡排序
* @param {Array} list 需要排序的数组(以number类型数组为例)
*/
function bubbleSort(list) {
const { length } = list;
for(let i = 0; i < length - 1; i++) {
for(let j = i + 1; j < length; j++) {
if(list[i] > list[j]) {
[list[i], list[j]] = [list[j], list[i]];
}
}
}
return list;
}
二、选择排序
描述:对数组进行循环,每次找到最小值的索引,然后进行交换。
时间复杂度:O(n^2)
/*
* @desc 选择排序
* @param {Array} list 需要排序的数组(以number类型数组为例)
*/
function selectSort(list) {
const { length } = list;
let minIndex = null;
for(let i = 0; i < length - 1; i++) {
minIndex = i;
for(let j = i + 1; j < length; j++) {
if(list[j] < list[minIndex]) {
minIndex = j;
}
}
[list[i], list[minIndex]] = [list[minIndex], list[i]];
}
return list;
}
三、插入排序
描述:对数组进行循环,每次把循环到的数据拿出来,和下标前面的数据进行比较。
时间复杂度:O(n^2)
function insertSort(list) {
const { length } = list;
for(let i = 1; i < length; i++) {
let key = list[i], j = i - 1;
while(list[j] > key) {
list[j + 1] = list[j];
j--;
}
list[j + 1] = key;
}
return list;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。