生成乱序数组
function arrRandom() {
let arr = [];
for (let i = 0; i < 10; i++) {
let num = parseInt(Math.random() * 500);
arr.push(num);
}
return arr;
}
sort()
let arr = arrRandom();
arr.sort((a, b) => a - b);
console.log("sort-----" + arr);
冒泡排序
let arr1 = arrRandom();
for (let i = 0; i < arr1.length; i++) {
for (let j = 0; j < arr1.length - i; j++) {
if (arr1[j] > arr1[j + 1]) {
let temp = arr1[j];
arr1[j] = arr1[j + 1];
arr1[j + 1] = temp;
}
}
}
console.log("Bubbling-----" + arr1);
选择排序
let arr2 = arrRandom();
var len = arr2.length,
temp,
min;
for (let i = 0; i < len; i++) {
min = i;
for (let j = i + 1; j < len; j++) {
if (arr2[min] > arr2[j]) {
min = j;
}
}
temp = arr2[min];
arr2[min] = arr2[i];
arr2[i] = temp;
}
console.log("choose-----" + arr2);
插入排序
for (let i = 1; i < arr3.length; i++) {
let temp = arr3[i];
let j = i - 1;
while (temp < arr3[j]) {
arr3[j + 1] = arr3[j];
j--;
if (j < 0) break;
}
arr3[j + 1] = temp;
}
console.log("insert-----" + arr3);
快速排序
let arr4 = arrRandom();
function quickSort(arr) {
let len = arr.length;
if (len <= 1) return arr;
var num = Math.floor(arr.length / 2);
var midValue = arr.splice(num, 1);
len = arr.length;
var leftArr = [],
rightArr = [];
for (var i = 0; i < len; i++){
if (arr[i] < midValue){
leftArr.push(arr[i]);
} else {
rightArr.push(arr[i]);
}
}
return quickSort(leftArr).concat(midValue, quickSort(rightArr));
}
console.log("quickSort-----" + quickSort(arr4));