1、冒泡排序
void blueSort(int *arr, int len)//时间复杂度 O(n^2) 空间复杂度O(1) 稳定
{
assert(NULL != arr);
bool flage = true;
for (int i = 0; i < len && flage; i++)
{
flage = false;
for (int j = 0; j < len - i - 1; j++)
{
if (arr[j] < arr[j + 1])
{
flage = true;
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
2、选择排序
void selectSort(int *arr, int len)
{
assert(NULL != arr);
int sit = 0;
for (int i = 0; i < len; i++)
{
sit = i;
for (int j = i + 1; j < len; j++)
{
if (arr[sit] > arr[j])
{
/*
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;*/
sit = j;
}
}
if (sit != i)
{
int tmp = arr[sit];
arr[sit] = arr[i];
arr[i] = tmp;
}
}
}
3、插入排序
void insertSort(int *arr, int len)//时间复杂度 O(n^2) 空间复杂度O(1) 稳定
{
assert(NULL != arr);
static int a = 0;
for (int i = 1; i < len; i++)
{
int j = i;
int tmp = arr[i];
for (; j > 0; j--)
{
a++;
if (tmp > arr[j - 1])
{
arr[j] = arr[j - 1];
}
else
{
break;
}
}
arr[j] = tmp;
}
printf("%d\n", a);
}