正宗冒泡排序算法C++版本,看图一目了然。
最低时间复杂度O(n),最高时间复杂度O(n^2),平均时间复杂度O(n^2)
![](https://img2020.cnblogs.com/blog/1421786/202007/1421786-20200731191906550-710280132.png)
#include <iostream>
#include <vector>
#include <stack>
#include <cstring>
#include <string>
#include <queue>
#include <algorithm>
#include "TreeNode.h"
using namespace std;
void mySwap(int num[], int i, int j){
int temp= num[i];
num[i] = num[j];
num[j] = temp;
}
// 从下往上冒泡
void BubbleSort(int num[], int length){
int i, j;
bool flag = true;
for(i = 0; i < length - 1 && flag; i++){
flag = false;
for(j = length - 2; j >= i; j--){
if(num[j] > num[j+1]){
flag = true;
mySwap(num, j, j+1);
}
}
}
}
int main(int argc, char* argv[]){
int arr[6] = {4,5,6,3,2,1};
BubbleSort(arr, sizeof(arr)/sizeof(arr[0]));
for(int i = 0; i < 6; i++){
cout<<arr[i]<<" ";
}
return 0;
}