冒泡排序是一種簡(jiǎn)單的排序算法,它重復(fù)地遍歷要排序的數(shù)列,每次比較相鄰的兩個(gè)元素,如果它們的順序錯(cuò)誤就交換它們的位置。遍歷數(shù)列的工作是重復(fù)地進(jìn)行,直到?jīng)]有再需要交換的元素,也就是說該數(shù)列已經(jīng)排序完成。
下面是冒泡排序的基本實(shí)現(xiàn):
public void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
其中,外層循環(huán)控制比較輪數(shù),內(nèi)層循環(huán)控制每輪比較的次數(shù)。在每輪比較中,從第一個(gè)元素開始,依次比較相鄰的兩個(gè)元素,如果前一個(gè)元素比后一個(gè)元素大,則交換它們的位置。
冒泡排序的時(shí)間復(fù)雜度為O(n^2),不適合對(duì)大量數(shù)據(jù)進(jìn)行排序。