以升序为例
十大经典排序算法
冒泡排序从头开始比较相邻元素,前一个数比后一个数大,则交换,使每一轮循环都能将最后元素变为最大(两两比较找最大)
function bubbleSort(arr) {
var len = arr.length;
for (var i = 0; i < len - 1; i++) {
for (var j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j+1]) { // 相邻元素两两对比
var temp = arr[j+1]; // 元素交换
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
选择排序
遍历整个数组,找到最小值下标,将最小值放在已排序队列末尾(遍历全部找最小)
function selectionSort(arr) {
var len = arr.length;
var minIndex, temp;
for (var i = 0; i < len - 1; i++) {
minIndex = i;
for (var j = i + 1; j < len; j++) {
if (arr[j] < arr[minIndex]) { // 寻找最小的数
minIndex = j; // 将最小数的索引保存
}
}
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
return arr;
}
插入排序
构建有序数组,将未排序数组依次插入有序数组中
function insertSort(arr) {
for(let i=1;i
// 当前要处理的数
let temp = arr[i]
// 与前面的数进行比较
let j = i-1
while(j>=0&&arr[j]>temp){
// 当前数小,所以将前一个数向后移一位
arr[j+1] = arr[j]
// 继续比较上一位
j--
}
arr[j+1] = temp
}
return arr
}
暑期编程PK赛
得CSDN机械键盘等精美礼品!


