1、冒泡排序:两两比较大小,每次结果都是从后往前排好序一个元素
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];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
2、选择排序:
function SelectSort(arr){
var minIndex,temp;
var len=arr.length;
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;
}
}
//交换i,minIndex
temp=arr[i];
arr[i]=arr[minIndex];
arr[minIndex]=temp;
}
return arr;
}
console.log(SelectSort([3,6,4,2,11,10,5]))
3、插入排序
function insertionSort(arr) {
var len = arr.length;
var preIndex, current;
for (var i = 1; i < len; i++) {
preIndex = i - 1;
current = arr[i];
while(preIndex >= 0 && arr[preIndex] > current) {
arr[preIndex+1] = arr[preIndex];
preIndex--;
}
arr[preIndex+1] = current;
}
return arr;
}