![795ca81056412da799605cbf8f1e75fe.png](https://i-blog.csdnimg.cn/blog_migrate/6ce758a4029ca362a886895759f1119f.png)
注: ①第一个算法给出了完整的测试程序,其余的为避免重复及节省空间,只显示排序算法部分代码 ②运行结果的程序耗时每次运行略有不同,仅供大致对比参考
1.冒泡排序
时间复杂度:O(n)[最好],O(n^2^)[平均],O(n^2^)[最差] 空间复杂度:O(1) 代码:
#include<iostream>
#include<windows.h>//计时用
using namespace std;
//冒泡排序算法
void bubbleSort(int data[], int n)
{
//打印原始数据信息
cout << "n 待排序数据为:";
for (int i = 0; i < n; i++)
cout << data[i] << " ";
//算法计时
LARGE_INTEGER nFreq, t1, t2;
double dt;
QueryPerformanceFrequency(&nFreq);
QueryPerformanceCounter(&t1);
//排序算法
int count = 0;
for (int i = 0; i < n - 1; i++)
{
bool flag = true;//排序提前完成标志
for (int j = 0; j < n - i - 1; j++)
{
if (data[j] > data[j + 1])//改成'<'则为降序
{
swap(data[j], data[j + 1]);
count++;
flag = false;
}
}
if (flag) break;
}
//打印结果信息