js冒泡排序详解

JavaScript07

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

found '{' at file scope (missing function header?)

这一句已经说得很清楚了啊,函数缺少头部,也即是你的max函数体没有头部的函数名。因为你在第二次定义函数max的时候在后面多加了个分号,结果C就认为第二条int max int x,int y) 是个存在性声明而不是定义的开始。那后面的一对花括号就成了无主游魂,自然会说语法错error C2059: syntax error 了

求采纳为满意回答。