public class BubbleSort{ public static void main(String args[]){ int[] values={3,1,6,2,9,1,6,2,9,0,7,4,5}; sort(values); for(int i=0;i<values.length;i++){//排序后打印数组中的元素 System.out.println("Index: "+i+" value: "+values[i]); } } public static void sort(int[] values){ int temp; for(int i=2;i<=values.length;i++){ for(int j=0;j<=values.length-i;j++){ if(values[j]>values[j+1]){ temp=values[j]; values[j]=values[j+1]; values[j+1]=temp; } } } } }
改进:
void BubbleSort1(int a[],int n) { int i,j,t,flag=0; //flag用来标记是否发生交换 for(i=0;i<n-1;i++) { for(j=n-1;j>i;j--) { if(a[j-1]>a[j])//交换数据 { t=a[j-1]; a[j-1]=a[j]; a[j]=t; flag=1; } }if(flag==0) //没发生交换,直接跳出循环 break; else flag=0; } }