冒泡排序:
對未排序的數(shù)組中的元素從頭到尾依次比較相鄰的兩個元素,若第前一個元素大于后面一個元素那么就交換兩個元素
的位置,經(jīng)過一輪的比較,那么最大的那個元素,會存到數(shù)組的最后一位,每比較一次就會有一個正確的數(shù)字放到正確的位置
例如: 6,4,9,1,3 --> 升序
4,6,1,3,9 -->一輪排序
4,1,3,6,9 -->二輪排序
1,3,4,6,9 --> 三輪排序
1,3,4,6,9 --> 四輪排序
1,3,4,6,9 --> 五輪排序
public class MaoPaoSortArray {
public static void main(String[] args) {
//創(chuàng)建數(shù)組
int[] arr = new int[10];
//向數(shù)組中隨機存儲0-100之間的值
for(int i = 0; i<arr.length;i++) {
arr[i] = (int)(Math.random()*100);
}
//打印沒有排序之前數(shù)組值
//對數(shù)組進行排序操作
//1.數(shù)組中所有的元素都需要進行一次比較,所以通過循環(huán)滿足每一個元素比較
for(int i = 0 ;i<arr.length;i++) {
//控制比較次數(shù)
//arr.length-1的目的是為了方式數(shù)組下標越界異常 原因在于 j+1 會到大數(shù)組的長度
//-i隨著比較次數(shù)的逐漸增多,每一次都會有一個正確數(shù)放到正確的位置,那么通過-i操作
//減少當前需要排序的元素個數(shù)
for(int j = 0; j<arr.length-1-i;j++) {
//具體元素的比較
if(arr[j] > arr[j+1]) {
//交換
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp; }
}
System.out.print("第"+(i+1)+"次排序的結(jié)果:\t");
for(int m = 0;m<arr.length;m++) {
System.out.print(arr[m]+"\t");
}
System.out.println();
}
}
}