插入排序
效率高
时间复杂度是n^2.(两个for 循环)。

bash
// arr,需要排序的数列
// len,数列的个数
void insert_order(int *arr, int len)
{
int i, j, k;
// i指向待插入元素的下标
for (i = 1; i < len; i++)
{
// k存放待插元素本身
k = arr[i];
j = i - 1; //有序序列的最后一个元素
while (j >= 0 && arr[j] > k)
{
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = k;
}
}
快排排序:

bash
void quick_sort(int *arr, int left, int right)
{
int i, j, k;
i = left;
j = right;
k = arr[i]; //假象的中间值。
while (i < j) // i == j
{
while (k <= arr[j] && i < j) j--;
if (i < j)
arr[i] = arr[j];
while (k >= arr[i] && i < j) i++;
if (i < j)
arr[j] = arr[i];
}
arr[i] = k;
if (left < i - 1)
quick_sort(arr, left, i - 1);
if (right > i + 1)
quick_sort(arr, i + 1, right);
}
排序种类

哈希表: