当前位置:   article > 正文

数据结构排序算法--冒泡排序(一)_java冒泡排序在最好时间复杂度为o(n)情况下的算法程序

java冒泡排序在最好时间复杂度为o(n)情况下的算法程序

冒泡排序算法

冒泡排序算法的平均时间复杂度为O(n²),最坏情况下的时间复杂度为O(n²),最好情况下的时间复杂度为O(n),空间复杂度为O(1),从第一个数据开始依次选取数值与相邻的数据值进行比较。

  • 算法描述(升序为例)
    选取第一个元素a与相邻元素b进行比较,如果a>b则交换值,小于不交换,继续与下一相邻元素进行比较,直到最后一个元素,由此可以进行第一轮比较会产生一个最大值并且交换到数据序列的末尾,第二轮则会选取除最大值之外所有数据中最大值交换到数据序列的倒数第二位,以此类推。每次都有一个值确定位置。
  • 图片展示
    在这里插入图片描述
  • 代码展示(java)
/*
*冒泡排序
*/
public  static int[] bubbleSort(int[]  arr){
   if(arr.length == 0){
       return arr;
  }
  for(int i = 0; i <arr.length;i++){
  //循环长度为arr.length-1-i,减 i 是为了提高性能,因为每一轮都会确定一个值得位置,不用再和位置已经确定的元素进行比较了,只对其余数据进行排序即可
     for(int j = 0;j <arr.length-1-i;j++){   
          if(arr[j+1]<arr[j]){
              int temp = arr[j+1];
              arr[j+i] = arr[j];
              arr[j] = temp;
          }
     }
  }
  return arr;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/632341
推荐阅读
相关标签
  

闽ICP备14008679号