重複遍歷數組,比較相鄰元素,順序錯誤則交換。每輪將最大/最小元素「冒泡」到末端。優化:若某輪無交換,說明已有序,提前結束。
int array[] = {3, 2, 6, 9, 8, 5, 7, 1, 4};
int count = sizeof(array) / sizeof(array[0]);
int flag = 1;
for (int i = 0; i < count - 1 && flag == 1; i++) {
flag = 0;
for (int j = 0; j < count - i - 1; j++) {
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
flag = 1;
}
}
}
public class Sort_Bubble {
public static void main(String[] args) {
int[] arr = {23, 12, 3, 45, 25, 46, 75, 15, 12, 52};
for (int i = arr.length - 1; i >= 0; i--) {
for (int j = 0; j < i; j++) {
if (arr[j] > arr[j + 1]) {
int 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] + " ");
}
}
}
public static void sort(String[] s) {
for (int i = 0; i < s.length - 1; i++) {
for (int j = 0; j < s.length - i - 1; j++) {
if (s[j].compareTo(s[j + 1]) > 0) {
String temp = s[j + 1];
s[j + 1] = s[j];
s[j] = temp;
}
}
}
}