#include <iostream>
#include <iomanip>
#include <random>
using namespace std;
void swap(int arr[], int i, int j) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
// 只用一个循环完成冒泡排序
// 但这是时间复杂度O(N^2)的!
void bubbleSort(int arr[], int n) {
if (arr == NULL) {
return;
}
int end = n - 1, i = 0;
while (end > 0) {
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1);
}
if (i < end - 1) {
i++;
}
else {
end--;
i = 0;
}
}
}
int main() {
int a[] = { 1, 2, 3, 4, 5 };
int n = 5;
bubbleSort(a, n);
for (int i = 0; i < n; i++) {
cout << a[i] << endl;
}
return 0;
}
算法讲解-左神 【5】只用一个循环完成冒泡排序
最新推荐文章于 2024-10-02 22:45:05 发布