Java终极冒泡排序
2015-08-27 07:31
537 查看
// 冒泡排序 public static void bubble(int[] a) { int count = 0;// 统计循环次数 boolean isOk = true;// 标志位 for (int i = 0; i < a.length; i++) {// 再好一点点的细节,a.length外提,编译原理中优化的一种:循环量外提 /*或者可以 for (int i = a.length; i > 0; --i) { for (int j = 0; j < i; ++j) { } }*/ for (int j = 0; j < a.length - i - 1; ++j) { if (a[j] > a[j + 1]) {//可以这样交换两个数字,效率很高,当然更重要的是看起来很能装~ a[j] ^= a[j + 1]; a[j+1] ^= a[j]; a[j] ^= a[j+1]; isOk = false;// 一趟有交换,则说明未排好 } ++count; } if (isOk)// 排好则不继续比较 break; } System.out.println(count); } public static void main(String[] args) { // 测试已经排好序的比较次数 int a[] = { 1, 1, 1, 2, 3, 32, 45, 49, 61 }; bubble(a); System.out.println(Arrays.toString(a)); int b[] = { 1111, 111, 111, 92, 90, 32, 40, 9, 6, 1 }; bubble(b); System.out.println(Arrays.toString(b)); }
相关文章推荐
- java几种方式实现斐波那契数列
- Spring的 depends-on
- spring boot遇到的问题
- JAVA中int、String的类型转换
- Java中Split函数的用法技巧
- Java中的静态方法和单例模式比较
- java继承构造函数
- thinkinginjava学习笔记04_初始化与清理
- [Java] Xfire开发WebService
- 如何去掉MyEclipse对JS等文件的验证
- selenium之操作ChromeDriver
- java常量池中string的问题
- How to make Eclipse IDE supports JSF 2.0
- Java类的静态块の二
- java中的转义字符
- Java Spring开发环境搭建及简单入门示例教程
- 树莓派搭建java web服务器(一)---树莓派入门系统安装
- 树莓派搭建java web服务器(二)---SSH远程访问连接
- 工程师薪酬分析:Java 不是过去式
- 如何成为一个优秀的Java程序猿