冒泡排序的实现及其优化。
2013-01-27 00:27
387 查看
/*
需求:冒泡排序的实现
思路:
1,冒泡排序的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。
2,大圈套小圈。
*/
/*
代码分析:如果待排序列为{5,6,7,8,9,10,11,12} 对于这种有序序列,没有必要大量进行比较。设置flag 标记,可以避免在有序情况下进行无意义的循环。
*/
[b]优化如下:
需求:冒泡排序的实现
思路:
1,冒泡排序的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。
2,大圈套小圈。
*/
class BubbleSort { //打印数组功能 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]+"]"); } } //冒泡排序功能 public static void bubble(int []arr) { for(int x=0;x<arr.length;x++) { for(int y=arr.length-1-1;y>=x;y--) { if(arr[y]>arr[y+1]) { swap(arr,y,y+1); } } } } //交换数据 public static void swap(int []arr,int a,int b) { int temp=arr[a]; arr[a]=arr; arr[b]=temp; } public static void main(String[] args) { int [] arr={5,7,14,3,65,9}; printArray(arr); bubble(arr); printArray(arr); } }
/*
代码分析:如果待排序列为{5,6,7,8,9,10,11,12} 对于这种有序序列,没有必要大量进行比较。设置flag 标记,可以避免在有序情况下进行无意义的循环。
*/
[b]优化如下:
//优化冒泡排序功能 public static void bubble(int []arr) { boolean flag=true; for(int x=0;x<arr.length&&flag;x++) { flag=false; for(int y=arr.length-1-1;y>=x;y--) { if(arr[y]>arr[y+1]) { swap(arr,y,y+1); flag=true; } } } }
相关文章推荐
- java版排序算法简介及冒泡排序以及优化,选择排序,直接插入排序,希尔排序,堆排序,快速排序及其优化前言 2 分类 2 稳定性 3 时间复杂度 4 Java实现版本 5 1、冒泡排序 6 2、选择排序
- 顺序表上实现冒泡排序及其优化
- 冒泡排序及其优化的 Java 实现
- 优化的冒泡排序的实现
- 使用复述,实现分布式锁及其优化
- 简单冒泡排序的时间复杂度及其两种优化
- 【C++】String类及其优化版的实现
- 冒泡排序及其优化
- memcpy函数实现及其优化
- MapReduce实现WordCount, 及其优化
- 冒泡排序实现及算法优化(java)
- SSE图像算法优化系列八:自然饱和度(Vibrance)算法的模拟实现及其SSE优化(附源码,可作为SSE图像入门,Vibrance算法也可用于简单的肤色调整)。
- 冒泡排序及其优化
- 并查集的简介及其C/C++代码的实现及优化
- 冒泡排序及其优化
- swap实现(优化空间和时间),及其带来的问题
- 冒泡排序算法及其优化C语言实现
- 冒泡排序Java语言实现及其优化
- mmseg中文分词算法的python实现及其优化
- 冒泡排序实现及优化(Java)