算法笔记1-排序-插入排序

本文详细解释了插入排序的工作原理,将其比作整理一手扑克牌的过程,并提供了具体的C语言实现代码。插入排序适合小规模数据集,其时间复杂度为O(n^2)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

插入排序的工作方式就像排序一手扑克牌。开始时,我们的左手为空,然后,我们每次从桌上拿走一张牌并将它插入到左手中正确的位置。为了找到正确的位置,我们总是从右到左将它与左手中的每张牌进行比较。这样,左手中的牌始终是排好序的,直到最后一张。

 

插入排序的时间复杂度是O(n^2),因此,对于小规模问题,能有效解决,但是对于大规模排序,可能就要选择其他排序方法。

void insertion_sort(int *a,int n)//a为数组,n为数组个数  
{  
    int i,j,key;  
  
    for (j = 1;j < n;j++) {  
        key = a[j];  
        i = j - 1;  
        while (i >= 0 && a[i] > key) {  
            a[i+1] = a[i];  
            i--;  
        }     
        a[i+1] = key;  
    }  
}

  

转载于:https://www.cnblogs.com/yk123/p/8301685.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值