首先我們了解下什么是冒泡排序:
冒泡排序就是把小的元素往前調或者把大的元素往后調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。所以,如果兩個元素相等,我想你是不會再無聊地把他們倆交換一下的;如果兩個相等的元素沒有相鄰,那么即使通過前面的兩兩交換把兩個相鄰起來,這時候也不會交換,所以相同元素的前后順序並沒有改變,所以冒泡排序是一種穩定排序算法。
冒泡排序的時間復雜度是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]+" ");
}
}
