冒泡排序
//原理:每次都是前后两两比较然后根据大小交换位置(可以从小到大,或者相反)
//1.prepare swap fn
function swap(array,index1,index2) {
var aux = array[index1];
array[index1] = array[index2];
array[index2] = aux;
}
//2.double for
function bubbleSort(arr){
let length = arr.length
for (let i=0;i<length;i++){
for (let j=0;j<length-1;j++){
if (arr[j] > arr[j+1]){
swap(arr,j,j+1)
}
}
console.log(arr) //过程
}
console.log('result',arr) //结果
}
let test = [1,5,4,3,2]
bubbleSort(test)
控制台运行实例:
选择排序
function swap(array,index1,index2) {
var aux = array[index1];
array[index1] = array[index2];
array[index2] = aux;
}
//selectionSort
//原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,
//然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
//以此类推,直到所有元素均排序完毕。
function selectionSort(arr) {
let len = arr.length;
for (let i = 0; i < len - 1; i++) {
let minIndex = i; //假设arr中最小值得index为minIndex
for (let j = i + 1; j < len; j++) {
if (arr[j] < arr[minIndex]) { // 寻找最小的数
minIndex = j; // 将最小数的索引保存
}
}
swap(arr,minIndex,i) //将实际最小值index(为i)赋值给minIndex,即获得当前一轮排序后的新arr
console.log(arr) //过程
}
console.log('result',arr) //结果
return arr;
}
let test = [5,4,1,3,2]
selectionSort(test)
控制台实例:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。