数组排列

冒泡排序:冒泡排序是一种算法,可以把一系列的数据按照一定的顺序进行排列显示(从小到大或是从大到小)

算法:观察执行过程,从而找到其中的规律,并将其转换成代码。

例如:可以将数组中的 [5,4,3,2,1] 中的元素按照从小到大的顺序排列,输出 1,2,3,4,5

 

冒泡排序  是一种简单的算法。它重复地走访过要排序的数列,一次比较两个元素。如果他们的顺序错误把他们交换过来

走访数列的工作是重复地进行到直到没有再需要交换,也就是该算法已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢浮

到数列的顶端。

例如:可以将数组中的 [5,4,3,2,1] 中的元素按照从小到大的顺序排列,输出 [1,2,3,4,5]

第一轮  [4,3,2,1,5]

5和4进行比较,错误,5到4后面;4,5,3,2,1

5和3进行比较,错误,5到3后面;4,3,5,2,1

5和2进行比较,错误,5到2后面;4,3,2,5,1

5和1进行比较,错误,5到1后面;4,3,2,1,5

第二轮 [3,2,1,4,5]

4和3进行比较,错误,4到3后面;3,4,2,1,5

4和2进行比较,错误,4到2后面;3,2,4,1,5

4和1进行比较,错误,4到1后面;3,2,1,4,5

第三轮 [2,1,3,4,5]

3和2进行比较,错误,3到2后面;2,3,1,4,5

3和1进行比较,错误,3到1后面;2,1,3,4,5

第四轮 [1,2,3,4,5]

2和1进行比较,错误,2到1后面;1,2,3,4,5

5 经过一轮一轮交换,慢慢浮到后面去,就像泡泡一样慢慢浮到上面去。

 

案例分析

实例一:


 

5  ,4 ,3 ,2 ,1

1、一共需要的趟数,使用外层 for循环

  5个数一共要走4趟

  总长度 即为数组长度减去 1(arr.length - 1)

2、每一趟交换次数,使用内层 for循环

  第1 趟交换 4次

  第2 趟交换 3次

  第3 趟交换 2次

  第4 趟交换 1次

  由于次数是由 0次开始的,所以长度为  arr.length - i -1

3、交换两个变量

var arr=[5,4,3,2,1]
for(var i=1;i<arr.length;i++){
// console.log(i)
    for(var j=0;j<arr.length-i;j++){
//     前一个和后一个元素相比较,如果前面的元素大于后面的元素就交换两个变量
    if(arr[j] > arr[j+1]){
    var k=arr[j];
    aa[j]=arr[j+1];
    arr[j+1]=k;
        }
    }
}
console.log(arr);

 

实例二:


 

乱序排列的数组,降序排列顺序

实现思路:如果前面的数小于后面的数,那么就将后面的数和前面的数,二者的值相互调换

与上面的思路大致相同,只需要将 > 变成 < 即可。

var arr=[4,2,5,1,3];
for(var i=0;i<arr.length;i++){
    for(var j=0;j<arr.length - i;j++){
        if(arr[j]<arr[j+1]){
            var k = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = k;
        }
    }
}console.log(arr);

 

 

posted on 2019-12-04 21:23  Cloud%  阅读(599)  评论(0编辑  收藏  举报