冒泡排序的原理说明:
第一趟:依次比较相邻的两个数,如果后面的数比前面的数小,则交换两个数的位置,一趟下来,所有关键字中最大的关键字会在最后,所以第二趟排序可以不考虑脚标最大位的关键字
第二趟:重复上述过程,但是第二趟中关键字总数比第一趟中少一个,因为所有关键字中最大的那个已经确定了
.
.
以此类推
.
.
public class 冒泡排序 { public static void bubblesort(int a[])//优化 { for(int i=0;i<a.length-1;i++)//记录共比较几轮 { for(int j=0;j<a.length-i-1;j++)//每轮比较的过程 { if(a[j]>a[j+1]) { int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } } public static void maopao(int a[]) //bubblesort { for(int n=a.length;n>1;n--) { for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { if(a[i]>a[j]) { int m=a[i]; a[i]=a[j]; a[j]=m; } else break; } } } } public static void print(int a[]) { for(int x=0;x<a.length;x++) { if(x!=a.length-1) System.out.print(a[x]+","); else System.out.print(a[x]); } //return int; System.out.println(); } public static void main(String[] args) { int []a=new int[]{56,34,21,45,75,24,1,1,5}; print(a); //int []b=new int[a.length]; maopao(a); print(a); bubblesort(a); print(a); } }
原文地址:http://caoyue.blog.51cto.com/9876038/1620643