冒泡排序优化——Java实现
2018-07-27 20:17
323 查看
[code] public class bubbleSort { private int [] array; public bubbleSort(int [] array) { this.array=array; } public static void main(String[] args) { int [] a= {3,5,2,8,0,4,7,29,11}; bubbleSort bsort=new bubbleSort(a); System.out.print("未排序时的数组: "); bsort.display(); bsort.sort(); } //打印每次排序后的数组元素 public void display() { for(int i=0;i<array.length;i++) { System.out.print(array[i]+"\t"); } System.out.println(); } //冒泡排序 public void sort() { int temp; int len=array.length; for(int i=0;i<len-1;i++) { //每次循环,确定一个相对大的数 boolean flag=false; //交换标志位 for(int j=1;j<len-i;j++) { //记录是第几次交换 if(array[j-1]>array[j]) { //如果前者大于后者,开始交换 flag=true; //发生交换 temp=array[j-1]; array[j-1]=array[j]; array[j]=temp; } } System.out.print("第"+(i+1)+"次排序结果:"); display(); //输出交换后的结果 if(!flag) { //如果没有发生交换,证明已经是有序的了,结束排序 break; } } } }
测试结果:
优化:因为冒泡排序算法简单但效率较低,所以加入交换标志位,避免在有序的情况下无意义的数组遍历。
注:在Java中类似于if(!flag),交换标志位数据类型一定为布尔型;
在C中并没有明显的区分。
阅读更多
相关文章推荐
- 冒泡排序实现及算法优化(java)
- 冒泡排序及其优化的 Java 实现
- 冒泡排序实现及优化(Java)
- java版排序算法简介及冒泡排序以及优化,选择排序,直接插入排序,希尔排序,堆排序,快速排序及其优化前言 2 分类 2 稳定性 3 时间复杂度 4 Java实现版本 5 1、冒泡排序 6 2、选择排序
- # Java实现冒泡排序—详细解析优化版冒泡
- 【LintCode-463】整数排序(Java实现-冒泡排序优化)
- Java实现冒泡排序以及优化冒泡排序的一些小技巧
- 【常用排序算法】冒泡排序与冒泡排序优化改进(Java实现)
- Java实现冒泡排序
- 用Java实现 ,冒泡排序与普通排序的区别
- Java程序实现冒泡排序、直接排序、插入排序方法
- Java实现冒泡排序和快速排序,选择…
- algo: 冒泡排序(Java实现)
- java实现的冒泡排序
- java实现冒泡排序
- java实现冒泡排序 (2012-05-23 10:18:22)
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- java实现冒泡排序,选择排序,插入排序,快速排序(简洁版)及性能测试
- 冒泡排序(Bubblesort)之Java实现
- (一)Java实现排序,选择排序,快速排序,冒泡排序,插入排序