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]

上面是比较基础的排序,排序还有很多种

posted @ 2017-08-25 16:00  弱音  阅读(1187)  评论(0编辑  收藏  举报