当前位置:
首页 >
Java改进的冒泡排序ImprovedBubbleSort
发布时间:2025/3/20
30
豆豆
生活随笔
收集整理的这篇文章主要介绍了
Java改进的冒泡排序ImprovedBubbleSort
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
原理:冒泡排序需要遍历几次数组,每次遍历都要比较相邻的元素,如果某一对降序则互换他们的值,由于较小的值像“气泡”一样浮向顶部,较大的值沉向底部,所以叫冒泡排序。
实例演示:
一般冒泡排序的特点是:n个数总共要比较(遍历)n-1趟,第i趟要比较n-i次。
一般程序是:
注意!!!:可以看到如果某次遍历没有发生交换,吗么就不必进行下一次遍历,因为所有的元素已经有序了。改进算法效率可以如下:
public static void bubbleSort(int[] list){int n=list.length;boolean NeedNextPass=true;for(int i=1;i<n&&NeedNextPass;i++){//总共比较n-1趟,如果某趟遍历中没有交换,那么不需要下次遍历,因为元素以排好NeedNextPass=false;for(int j=0;j<n-i;j++){//第i趟比较n-i次if(list[j]>list[j+1]){int temp;temp=list[j];list[j]=list[j+1];list[j+1]=temp; NeedNextPass=true;}}}}一般代码是:
public class BubbleSort {//冒泡排序public static void bubbleSort(int[] list){int n=list.length;for(int i=1;i<n;i++){//总共比较n-1趟for(int j=0;j<n-i;j++){//第i趟比较n-i次if(list[j]>list[j+1]){int temp;temp=list[j];list[j]=list[j+1];list[j+1]=temp; }}}}public static void main(String args[]){int[] list={2,1,56,34,9,6,55,20,37,22}; System.out.println("排序前的list是:");for(int i=0;i<list.length;i++){System.out.print(list[i]+" ");}bubbleSort(list);//进行冒泡排序System.out.println();System.out.println("排序后的list是:");for(int i=0;i<list.length;i++){System.out.print(list[i]+" ");}} }改进代码是:
public class BubbleImprovedSort {//冒泡排序public static void bubbleSort(int[] list){int n=list.length;boolean NeedNextPass=true;for(int i=1;i<n&&NeedNextPass;i++){//总共比较n-1趟,如果某趟遍历中没有交换,那么不需要下次遍历,因为元素以排好NeedNextPass=false;for(int j=0;j<n-i;j++){//第i趟比较n-i次if(list[j]>list[j+1]){int temp;temp=list[j];list[j]=list[j+1];list[j+1]=temp; NeedNextPass=true;}}}}public static void main(String args[]){int[] list={2,1,56,34,9,6,55,20,37,22}; System.out.println("排序前的list是:");for(int i=0;i<list.length;i++){System.out.print(list[i]+" ");}bubbleSort(list);//进行冒泡排序System.out.println();System.out.println("排序后的list是:");for(int i=0;i<list.length;i++){System.out.print(list[i]+" ");}} }总结
以上是生活随笔为你收集整理的Java改进的冒泡排序ImprovedBubbleSort的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Java实现斐波那契数列Fibonacc
- 下一篇: JavaBean网页电子时钟