冒泡排序java实现及优化
来源:互联网 发布:pkpm网络锁序列号有误 编辑:程序博客网 时间:2024/06/04 17:39
一 冒泡排序算法 1 相邻元素两两比较,大的放后面,第一次完毕,最大值在最大索引处 2 java代码实现 public static void bubbleSort(int[] arr) { for(int i=0; i<arr.length-1; i++) for(int j=0; j<arr.length-1-i;j++) { if(arr[j] > arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; location = j; } } }二 代码优化 1 当某一趟遍历没有交换,就说明已经遍历好了,就不用再迭代了 public static void sort(int[] arr) { int flag; // 标记 for(int i=0; i<arr.length-1; i++) { flag = 1; // 每一次迭代标记为1 for(int j=0; j<arr.length-i-1; j++) { if(arr[j] > arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; flag = 0; // 如果有次序交换,标记为0 } } if(flag == 1) // 没有次序交换,排序完成 break; } }2 记录每次遍历数据之后交换次序的位置,显然这个位置之后的数据已经有序了不用再排序了。因此通过记录最后发生数据交换的位置就可以确定下次循环的范围了。public static void sort(int[] arr) { int location; // 标记 int n = arr.length - 1; // 初始化最后交换位置为最后一个元素 for(int i=0; i<arr.length-1; i++) { location = n; // 记录最后发生交换的位置 for(int j=0; j<location; j++) { if(arr[j] > arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; n = j; // 记录无序位置的结束 ,有序从j+1位置开始 } } if(n == location) // 没有次序交换,排序完成 break; } }
0 0
- 冒泡排序java实现及优化
- 冒泡排序实现及优化(Java)
- 冒泡排序 (java实现)及算法优化
- Java算法实现之冒泡排序及优化
- 冒泡排序及Java实现
- Java编写冒泡排序及优化
- 冒泡排序及优化
- 冒泡排序及优化
- 冒泡排序及优化
- 冒泡排序及优化
- 冒泡排序及优化
- 冒泡排序及其优化的 Java 实现
- 冒泡排序Java语言实现及其优化
- 优化版冒泡排序之java实现
- java实现冒泡排序 并优化
- # Java实现冒泡排序—详细解析优化版冒泡
- Java优化冒泡排序
- 冒泡排序优化JAVA
- CSS学习记录1
- leetcode_349(找两个集合的交集)
- Collection集合
- 数据结构(十一)——二叉树的遍历和建立
- C#中事件的本质论
- 冒泡排序java实现及优化
- 快速自动更新Android Studio版本
- 函数的升级(下)-函数的重载
- 类和对象、构造析构函数
- 虚拟机Linux 添加磁盘容量
- mysql批处理sql文件
- EJB到底是什么,真的那么神秘吗??
- Android基础,新手须知
- win7 easybcd安装 ubuntu