排序算法总结(1)
2018-08-10 本文已影响0人
chuaa
1. 冒泡排序
function bubbleSort(arr) {
for (let i = 0,len = arr.length; i < len - 1; i++) {
for (let j = 0; j < len - 1; j++) {
if (arr[j] > arr[j + 1]) {
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
}
return arr;
}
2. 选择排序
function selectSort(arr) {
for (let i = 0,len = arr.length; i < len; i++) {
let minIndex = i;
for (let j = i+1; j < len; j++) {
if (arr[minIndex] > arr[j]) {
minIndex = j;
}
}
[arr[minIndex],arr[i]]=[arr[i],arr[minIndex]];
}
return arr;
}
3. 插入排序
function insertSort(arr) {
for (let i = 1, len = arr.length; i < len; i++) {
for (let j = i; j > 0; j--) {
if (arr[j] < arr[j - 1]) {
[arr[j], arr[j - 1]] = [arr[j - 1], arr[j]];
} else {
break;
}
}
}
return arr;
}
3.1 插入排序的改进(用赋值代替交换)
function insertSort2(arr) {
for (let i = 1, len = arr.length; i < len; i++) {
let temp = arr[i];
let j;
for (j = i; j > 0; j--) {
if (temp < arr[j - 1]) {
arr[j] = arr[j - 1];
} else {
break;
}
}
arr[j] = temp;
}
return arr;
}