今天我们来一波排序
一.冒泡排序
冒泡排序指在一堆大小不一的数中,对这些不同的值进行排序所用的一种方法,相邻两个数之间相互比较,如果前一个数与后一个数相比,前一个数比后一个数大,则位置不变;反之,前一个数比后一个数小,两个数交换位置,数的大小就像鱼儿吐的泡泡一样,大的在不断向上冒,小的在最下方.
function sort(elements) {
//外层循环控制轮
for(var i=0;i<elements.length-1;i++){
//内层循环比较两个数的大小
for(var j=0;j<elements.length-1-i;j++){
if(elements[j]>elements[j+1]){
var linshi=elements[j];
elements[j]=elements[j+1];
elements[j+1]=linshi;
}
}
}
}
var elements=[50,32,68,11,55,9];
console.log(elements);
sort(elements);
console.log(elements);
二.选择排序
function selectSort(arr){
//外层循环控制选择数下标
var minIndex,temp;
//minIndex下标 temp临时参数
for(var i=0;i<arr.length-1;i++){
minIndex=i;//每一趟都将本趟循环的第一个数字看成最小,记录下标
for(var j=i+1;j<arr.length;j++){
if(arr[j]<arr[minIndex]){
minIndex=j;//记录最小数下标
}
}
temp=arr[i];
arr[i]=arr[minIndex];
arr[minIndex]=temp;
}
return arr;
}
var arr1=[50,32,68,11,55,9];
var jieguo=selectSort(arr1);
console.log(jieguo);
三.插入排序
//将所排数组分成两部分,一部分是有序的,一部分是无序的,将无序的数组拿出数字进入有序数组插序
function insertSort(array){
for(var i=1;i<array.length;i++){
var key=array[i];
var j=i-1;
while(array[j]>key){
array[j+1]=array[j];
j--;
}
array[j+1]=key;
}
return array;
}
var array=[50,32,68,11,55,9];
var results=insertSort(array);
console.log(results);