举例:要排序的数组 int[] arr={7,9,8,4,5,1,6,3,2,0};
从小到大排列:
/* 冒泡排序 */ public class BubbleSort { public static void main(String[] args) { int[] arr={7,9,8,4,5,1,6,3,2,0}; for(int i=0;i<arr.length-1;i++){//外层循环控制次数 for(int j=0;j<arr.length-1-i;j++){//内层循环逐个比较(减1是为了防止a[j+1]出现数组访问越界) if(arr[j]>arr[j+1]){//从小到大排列,从大到小排列则改为< int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } for(int b=0;b<arr.length;b++){//输出 System.out.println(arr[b]); } } }
运行结果:
0 1 2 3 4 5 6 7 8 9比较次数:
10个数,第一趟,比较9次,得到最大数。
剩下的9个数,比较8次,得到排第二位的数。
以此类推,最后比较1次,确定最后两个数大小。
故比较次数为1+2+3+,,,+9=45次。
故冒泡排序比较次数公式为:n(n-1)/2,其中,n是元素个数。