//手撸选择排序算法
for(int i = 1; i <= n - 1; i ++ )
{
for(int j = i + 1; j <= n; j ++ )
{
找到最小
与它交换
}
}
//手撸希尔排序
void ShellSort(int* arr, int n)
{
int gap = n;
while (gap>1)
{
//每次对gap折半操作
gap = gap / 2;
//单趟排序
for (int i = 0; i < n - gap; i++)
{
int end = i;
int tem = arr[end + gap];
while (end >= 0)
{
if (tem < arr[end])
{
arr[end + gap] = arr[end];
end -= gap;
}
else
{
break;
}
}
arr[end + gap] = tem;
}
}
}
//手撸插入排序
//下标从1开始
for(int i = 2; i <= n; i ++ )
{
int t = a[i];
for(int j = i - 1; j >= 1 && a[j] > t; j -- )
{
a[j + 1] = a[j];
}
a[j + 1] = t;
}