插入排序算法(C语言版)

07-10 1052阅读

直接插入排序

插入排序(insert sort)是一种简单的排序算法,它的工作原理与手动整理一副牌的过程非常相似。

插入排序算法(C语言版)

具体来说,我们在未排序区间选择一个基准元素,将该元素与其左侧已排序区间的元素逐一比较大小,并将该元素插入到正确的位置。

代码示例

void insert_sort(int* arr,int n)
{
	for (int i = 0; i = 0)
		{
			if (tmp  

性能分析

  • 时间复杂N^2)
  • 空间复杂度:O(1)

    希尔排序

    希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。

    希尔排序又称缩小增量排序,因 DL.Shell 于 1959 年提出而得名。

    它通过比较相距一定间隔的元素来进行,各趟比较所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一趟排序为止。

    插入排序算法(C语言版)

    代码示例

    void shell_sort(int* arr, int n)
    {
    	int gap = n;
    	while (gap > 1)
    	{
    		gap = gap / 3 + 1;//保证最后一次 gap==1
    		//多组并排
    		for (int i = 0; i = 0)
    			{
    				if (tmp  
    

    性能分析

    • 时间复杂度不好计算,需要进行推导,推导出来平均时间复杂度: O(N^1.3— N^2)
    • 空间复杂度:O(1)
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]