首先我们了解下什么是冒泡排序:
冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。
冒泡排序的时间复杂度是n^2;
当有N个数需要排列时,按照冒泡排序的思想,需要进行N-1的排序,每次排序将最大或最小的数放到数组的尾部(每次内部排序完后那么下次只需比较除最后一个数外的数组的其他的数,因为最后一个数已经符合最大或最小的要求)
public static void main(String[] args) { //定义一个数组,长度为10 int arr[] = new int[10]; //随机生成0到20的随机数填充数组 for(int i = 0;i<arr.length;i++){ arr[i] =(int)( Math.random()*20); } //输出未排序前的数组 for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]+" "); } //换行 System.out.println(); //进行冒泡排序 for(int i =0;i<arr.length-1;i++) //第二层循环,最大的数排到数组底部 for(int j = 0;j<arr.length-i-1;j++){ if(arr[j]>arr[j+1]){ int temp; temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } //输出查看结果 for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]+" "); } }