冒泡排序
輕的上浮,沉的下降,小的往前來,大的往后走.
兩個相鄰位置比較,如果前面的元素比后面的元素大就換位置.每比較一次,最后一次就不用再參與比較了.相鄰元素兩兩比較,大的往后放,第一次完畢,最大值出現在了最大索引處
圖解一:
圖解二:
案例:
-
public class Demo1_Array {
-
public static void main(String[] args) {
-
int[] arr = {24, 69, 80, 57, 13};
-
bubbleSort(arr);
-
print(arr);
-
}
-
public static void bubbleSort(int[] arr) {
-
for (int i = 0; i < arr.length - 1; i++) { //外循環只需要比較arr.length-1次就可以了
-
for (int j = 0; j < arr.length - 1 - i; j++) { //-1為了防止索引越界,-i為了提高效率
-
if(arr[j] > arr[j+1]) {
-
swap(arr,j,j+1);
-
}
-
}
-
}
-
}
-
public static void print(int[] arr) {
-
for (int i = 0; i < arr.length; i++) {
-
System.out.print(arr[i] + "");
-
}
-
}
-
-
/*
-
* 換位操作
-
* 1,返回值類型,void
-
* 2,參數列表int[] arr.int i,int j
-
*/
-
-
private static void swap(int[] arr,int i,int j) {
-
int temp = arr[i];
-
arr[i] = arr[j];
-
arr[j] = temp;
-
}
-
}