0


JavaScript-冒泡排序

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

1.第一层 for循环的含义(主外)

首先我们要确定 一共需要交换多少趟 ,我们通常最外层的for循环来用于执行交换的趟数;

例如:一个数组长度为七,届时需要交换六趟

核心算法为:arr.length-1;

2.第二层 for循环的含义(主内)

第二层for循环主要是用来控制每次交换的次数;

其主要的核心算法是 arr.length-i-1;

因为是从零开始的 所以要减去

  •    此时数组的索引为   0   第一趟交换 6 次   
    
  •                                    1   第二趟交换 5 次 
    
  •                                    2   第三趟交换 5 次
    
  •                                    3   第四趟交换 4 次   
    
  •                                    4   第五趟交换 3 次  
    
  •                                    5   第六趟交换 2 次
    

3.交换两个变量的值

前一个和后一个数组的元素相比较

判断数组里面的元素大小,先声明一个变量用于接收,如果数组里面第J个元素大于数组里面第J+1个元素,将进行交换

步骤:1.先把数组里面的第一个元素(arr[ j ])给到声明的空变量max; ** max = arr[ j ]**

       2.再把第二个元素(**arr[ j + 1]**  )给到第一个变量(**arr[ j ]**);

       3.**arr[ j + 1]**  =  **max;**
    <script>
        var arr = [1, 9, 8, 65, 4563, 45, 2];
  //1.控制趟数算法 数组的长度 - 1  arr.length-1
        for (var i = 0; i < arr.length - 1; i++) {
  //2.控制每次交换的次数 算法 数组的长度-趟数-1    arr.length-i-1            
            for (var j = 0; j < arr.length - i - 1; j++) {
                // 3.交换变量
                var max ;
                if(arr[j]>arr[j+1]){ 
                    max = arr[j];
                    arr[j] = arr[j+1]
                    arr[j+1] = max
                }
            }
        }
        console.log(arr);
    </script>
           ![](https://img-blog.csdnimg.cn/a185da53289f4b6a8a437667b0313d40.png)                                                                                                                                                

本文转载自: https://blog.csdn.net/qq_52499703/article/details/125791297
版权归原作者 ncj0612 所有, 如有侵权,请联系我们删除。

“JavaScript-冒泡排序”的评论:

还没有评论