插入排序

插入排序算法是一个对少量元素进行排序的有效算法。
插入排序是稳定的。

复杂度

平均时间复杂度: O(n^2)
最坏时间复杂度: O(n^2) 最优时间复杂度: O(n)
最坏空间复杂度: 总共 O(n) ,需要辅助空间 O(1)

算法原理

代码实现

void insert_sort(Elem* arr,int size)
{
   
	int key;
	for(int i = 1;i < size; i++)
	{
   
		key = arr[i];
		for(int j = i-1;j >= 0;j--)
		{
   
			if(arr[j] > key)
			{
   
				arr[j + 1] = arr[j];
			}
		}
		arr[++j] = key;
	}
}

参考文献