日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js数组sort排序原理

發布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js数组sort排序原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家都知道javascript的數組有sort排序方法,可以實現升序與降序,現在我們來學習一下sort方法排序的原理冒泡排序。
冒泡排序:拿數組的當前項和后一項比較,如果當前項大于后一項,兩者交換位置。

1 let arr = [100, 34, 16, 3, 18, 70]; 2 3 for (var i = 1; i < ary.length; i++) { 4 5 for (var j = 0; j < ary.length - i; j++) { 6 7 if (ary[j] > ary[j + 1]) { 8 9 [ary[j], ary[j + 1]] = [ary[j + 1], ary[j]] 10 11 } 12 13 } 14 15 }

?

第一層循環確定循環輪數,第二層循環當前項與后一項進行比較,如果當前項大于后一項就進行位置的互換,上面使用的是ES6的方法實現位置的互換。

1 //第一輪 i=1; 2 //j=0 arr[j]>arr[j+1] arr[0]>arr[1] 100>34 交換位置 [34,100,16,3,18,70]; 3 //j=1 arr[j]>arr[j+1] arr[1]>arr[2] 100>16 交換位置 [34,16,100,3,18,70]; 4 //j=2 arr[j]>arr[j+1] arr[2]>arr[3] 100>3 交換位置 [34,16,3,100,18,70]; 5 //j=3 arr[j]>arr[j+1] arr[3]>arr[4] 100>18 交換位置 [34,16,3,18,100,70]; 6 //j=4 arr[j]>arr[j+1] arr[4]>arr[5] 100>70 交換位置 [34,16,3,18,70,100,]; 7 //j<5 arr.length-i 8 9 //第二輪 i=2; [34,16,3,18,70,100,]; 10 //j=0 arr[j]>arr[j+1] arr[0]>arr[1] 34>16 交換位置 [16,34,3,18,70,100,]; 11 //j=1 arr[j]>arr[j+1] arr[1]>arr[2] 34>3 交換位置 [16,3,34,18,70,100,]; 12 //j=2 arr[j]>arr[j+1] arr[2]>arr[3] 34>18 交換位置 [16,3,18,34,70,100,]; 13 //j=3 arr[j]>arr[j+1] arr[3]>arr[4] 34<70 不交換位置 [16,3,18,34,70,100,]; 14 //j<4 15 16 //第三輪 i=3; [16,3,18,34,70,100,]; 17 //j=0 arr[j]>arr[j+1] arr[0]>arr[1] 16>3 交換位置 [3,16,18,34,70,100,]; 18 //j=1 arr[j]>arr[j+1] arr[1]>arr[2] 16<18 不交換位置 [3,16,18,34,70,100,]; 19 //j=2 arr[j]>arr[j+1] arr[2]>arr[3] 18<34 不交換位置 [3,16,18,34,70,100,];

?

轉載于:https://www.cnblogs.com/youngGao/p/8974325.html

總結

以上是生活随笔為你收集整理的js数组sort排序原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。