【算法】冒泡排序
2016-08-30 23:55
134 查看
画外音:
在深入学习更多排序算法后和在实际使用情况中,冒泡排序的使用还是极少的。它适合数据规模很小的时候,而且它的效率也比较低,但是作为入门的排序算法,还是值得学习的 。
冒泡排序,相邻的两个元素进行比较,如果符合条件,就换位。
第一圈,最值出现在了最后一位。如果要升序,则,最大值在最后一位,如果是降序,则最小值在最后一位。
然后,第二圈,同样比较,次数少1,因为最后一位已经排出来。
第三圈,依次类推,次数再少1,最后两位不用参与排序。
冒泡排序最坏情况的时间复杂度是O(n²)
代码(升序举例)
运行结果:
如果想要降序排序,只需要将嵌套循环,if语句中的条件语句写成小于号,就OK啦!
好啦,简单的冒泡排序就完成啦~
画外音:
在深入学习更多排序算法后和在实际使用情况中,冒泡排序的使用还是极少的。它适合数据规模很小的时候,而且它的效率也比较低,但是作为入门的排序算法,还是值得学习的 。
冒泡排序,相邻的两个元素进行比较,如果符合条件,就换位。
第一圈,最值出现在了最后一位。如果要升序,则,最大值在最后一位,如果是降序,则最小值在最后一位。
然后,第二圈,同样比较,次数少1,因为最后一位已经排出来。
第三圈,依次类推,次数再少1,最后两位不用参与排序。
冒泡排序最坏情况的时间复杂度是O(n²)
代码(升序举例)
<span style="font-size:12px;color:#000000;background-color: rgb(255, 255, 255);">public static void main(String[] args) { int[] arr = {5,1,6,4,2,8,9,3}; //排序前 System.out.print("排序前:"); printArray(arr); //排序 bubbleSort(arr); //排序后 System.out.print("排序后:"); printArray(arr); } //冒泡排序 public static void bubbleSort(int[] arr){ for(int x=0;x<arr.length-1;x++){ //-x:让每一次比较的 元素减少;-1:避免角标越界 for(int y=0;y<arr.length-x-1;y++){ </span><span style="font-size:12px;color:#000000;background-color: rgb(255, 255, 255);"> if(arr[y] > arr[y+1]){ int temp = arr[y]; arr[y] = arr[y+1]; arr[y+1] = temp; } } } } //打印数组的方法 public static void printArray(int[] arr){ System.out.print("["); for(int i=0;i<arr.length;i++){ if(i!=arr.length-1){ System.out.print(arr[i]+","); }else{ System.out.println(arr[i]+"]"); } } }</span>
运行结果:
如果想要降序排序,只需要将嵌套循环,if语句中的条件语句写成小于号,就OK啦!
好啦,简单的冒泡排序就完成啦~
相关文章推荐
- 【数据结构和算法】排序算法之一:冒泡排序
- 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。
- Java经典算法汇总之冒泡排序
- 算法(二)冒泡排序
- 《算法》选择排序、插入排序、冒泡排序
- iOS算法(四)之冒泡排序
- 算法2:邻居好说话:冒泡排序
- 算法之冒泡排序
- 第16周项目1-验证算法(3)冒泡排序 显示过程
- 第十六周项目一验证算法(1)冒泡排序
- 算法 c语言 冒泡排序改进
- 排序算法之冒泡排序
- 第十六周项目1-(3)验证算法冒泡排序
- 第十六周实践项目(1)—验证算法1冒泡排序
- Java数据结构和算法之冒泡排序_动力节点Java学院整理
- Python之排序算法:快速排序与冒泡排序
- java 算法之冒泡排序
- 冒泡排序及其改进算法C语言实现
- 【算法】冒泡排序--js实现
- 算法分析之冒泡排序