js冒泡排序详解

JavaScript023

js冒泡排序详解,第1张

冒泡排序的原理就是讲两个相邻的元素进行比较,数值大的元素就会往后排就是换到走遍,而我们依次比较并把大数放在后面依次循环,那么最大的元素就会排在最后边,注意:在排完一次之后最后面的数已经是最大的了所以我们并不需再再次比较最后一个元素,也就是比较的次数以此减少。

var arr=[4,2,7,2,5,8,0,4,5,7,3,8,9]

         冒泡排序

         i 的目的是做多少轮的 比较   j和j+1是前后数据比较

         var arr=[4,1,7,2]

          i==0

        arr[i]=4

         j=0  arr[j]=4   arr[j+1]=1    4,1,7,2---->1,4,7,2 

         j=1  arr[j]=4  1,4,7,2--->1,4,7,2

         j=2  arr[j]=7  1,4,7,2--->1,4,2,7

       ### j=3  arr[j]=7 arr[j+1]不存在   因为j+1超过数组的长度,所以j必须是长度-1

         i==1

         j==0 arr[j]=1    1,4,2,7--->1,4,2,7

         j==1 arr[j]=4    1,4,2,7--->1,2,4,7

         ###j==2  上面一次循环中放在最后的是最大的,所以不需要循环到2

          i==2

         j=0  arr[j]=1    1,2,4,7-->1,2,4,7

       function sorts(arr){

            var len=arr.length-1

            for(var i=0i<leni++){

                for(var j=0j<len-ij++){

                    if(arr[j]>arr[j+1]){

                    // if(arr[j+1]-arr[j]<0)

                        var temp=arr[j+1]

                        arr[j+1]=arr[j]

                        arr[j]=temp

                    }

                }

            }

        }

        sorts(arr)

        console.log(arr) 

冒泡排序就是一个数组里面的数进行排序,就是前一个和后一个数进行比较,如果第一个数大于第二数就换位置,然后依次比较,直至比较完所有的排序。

function bubbleSort(arr){

constlen = arr.length

for(leti=0i arr[j+1]){ 

 [arr[j],arr[j+1]] = [arr[j+1],arr[j]]     // 交换位置

 } 

 }returnarr}console.log(bubbleSort([3,44,15,36,26,27,2,46,4,19,50,48]))//[2,3,4,15,19,26,27,36,44,46,48,50]

链接:https://juejin.cn/post/7073640285904830471

1、比较相邻的两个元素,如果前一个比后一个大,则交换位置。

2、比较完第一轮的时候,最后一个元素是最大的元素。

3、这时候最后一个元素是最大的,所以最后一个元素就不需要参与比较大小。

使用sort函数对数组进行排序: https://www.jianshu.com/p/b59453d83848