我想了解最簡單的所有交換算法,bubblesort。然而,我似乎對實際交換價值的步驟相混淆,例如考慮代碼:瞭解氣泡排序(算法)
void bubbleSort(int arr[], int n) {
bool swapped = true;
int j = 0;
int tmp;
while (swapped) {
swapped = false;
j++;
for (int i = 0; i < n - j; i++) {
if (arr[i] > arr[i + 1]) {
tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
swapped = true;
}
}
}
}
比方說,我有這樣的數字列表:
7 1 3 4 6 3 5
我想交換前兩個值,第7和1:
通過我的邏輯,這是我如何理解這個代碼:
設置一個臨時變量等於7,那麼
temp = 7;
組7等於下一個值,所以
7 = 1;
? 在目前的名單是:
1 1 3 4 6 3 5
Where temp = 7
現在設置1等於溫度,這是7? 1 =溫度;
So the list is now:
1 7 3 4 6 3 5
我的理解是否正確?
是的。只要繼續這樣做,直到它被全部排序。 –
是的你是對的。看看https://en.m.wikipedia.org/wiki/Bubble_sort – Jerome
https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html – dtech