理论讲解
代码实现
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
// 冒泡排序算法
void BubbleSort(int arr[], int size)
{
for (int i = 0; i < size-1; i++) // 趟数 O(n) * O(n) = O(n^2)
{
bool flag = false;
// 一趟的处理
for (int j = 0; j < size - 1 - i; j++) // O(n)
{
if (arr[j] > arr[j + 1])
{
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
flag = true;
}
}
if (!flag)
{
// 如果没有做任何的数据交换,那么说明数据已经有序了
return;
}
}
}
// 选择排序算法 O(n) * O(n) = O(n^2) 空间复杂度: O(1) 稳定性:不稳定
// 5 5 3
void ChoiceSort(int arr[], int size)