js冒泡排序和选择排序
冒泡排序 :数组,前一项和后一项比较,前一项大,前一项和后一项交换位置。反之不变。依次往下比。直到最大的数跑到最右边,然后进行第二轮比较。
var my_arry=[9,8,7,6,5,4,3,2,1];
for(var j=0;j<my_arry.length;j++){//第一层循环控制比较多少轮
var a;
for(var i=0;i<my_arry.length-j-1;i++){//第二层循环用于第一轮的比较
if(my_arry[i]>my_arry[i+1]){
a=my_arry[i+1];
my_arry[i+1]=my_arry[i];
my_arry[i]=a;
}
}
console.log(my_arry);//打印冒泡排序的过程
}
/*打印如下*/
[8, 7, 6, 5, 4, 3, 2, 1, 9]
[7, 6, 5, 4, 3, 2, 1, 8, 9]
[6, 5, 4, 3, 2, 1, 7, 8, 9]
[5, 4, 3, 2, 1, 6, 7, 8, 9]
[4, 3, 2, 1, 5, 6, 7, 8, 9]
[3, 2, 1, 4, 5, 6, 7, 8, 9]
[2, 1, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
选择排序:第一轮,找出数组中最小的数,将第一项和最小的数互换位置。第二轮找到除第一项最小的数,和第二项互换位置,依次类推
//找出数组中最小的数
var arr=[9,8,7,6,5,4,3,2,1];
var min;
for(var j=0;j<arr.length-1;j++){
for(var i=j+1;i<arr.length;i++){
min=j;
if(arr[min]>arr[i]){
min=i;
var b=arr[j];
arr[j]=arr[min];
arr[min]=b;
}
}
console.log(arr);//打印
}
/*打印如下*/
[1, 9, 8, 7, 6, 5, 4, 3, 2]
[1, 2, 9, 8, 7, 6, 5, 4, 3]
[1, 2, 3, 9, 8, 7, 6, 5, 4]
[1, 2, 3, 4, 9, 8, 7, 6, 5]
[1, 2, 3, 4, 5, 9, 8, 7, 6]
[1, 2, 3, 4, 5, 6, 9, 8, 7]
[1, 2, 3, 4, 5, 6, 7, 9, 8]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
上面是比较基础的排序,排序还有很多种