分享

34.冒泡排序

 python_lover 2021-10-04

参考网站  https:///

冒泡排序:

前后两个数两两进行比较

前 < 后, 则后面一个继续与下一个比较

前 > 后,则交换位置,再与下一个比较

第一轮比较完成可以确定最后一个数字的位置

再进行第二轮来确定倒数第二个的位置

直到排序完成

arr.length = 5

关于 j < arr.length-i-1,由于我们从第一个从0开始,那么我们看第0轮,j

j < 5-0-1也就是 j < 4 也就是说 j 最大取3 ,arr[3]与arr[3+1]进行比较

轮数/i 0 1 2 3 4 比较次数/arr.length-i-1
0 5 4 3 2 1 4
1 4 3 2 1 5 3
2 3 2 1 4 5 2
3 2 1 3 4 5 1
  1 2 3 4 5  

注意可以每一轮都比较4次,只是算法比较占内存


let arr = [5,4,3,2,1]
for(let i = 0; i < arr.length; i++){ // 比较的轮数
  for(let j = 0; j < arr.length - i -1; j++){ //比较的组数
    if(arr[j]>arr[j+1]){
      let a = arr[j]
      arr[j] = arr[j+1]
      arr[j+1] = a
    }
  }
}

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多