直接插入排序 C++实现

直接插入排序:

算法思想:首先认为文件第一个数据是有序的,依次扫描后面的数据,将其插入到前面已经有序的数据区段内,使之有序。
代码实现(C++):
1
void InsertSort(SeqList R, int n)
2
{
3
    
4
    for(int i=1; i<n; i++)   // 默认第一个数据有序,依次遍历从第2个数据之后的数据
5
    {
6
        j=0;
7
        while(j<i)  // 找到R[i]的插入位置
8
        {
9
            if(R[i]<R[j])    // R[i]从j=0开始的R[j]进行比较,小于当前遍历的数据时,
10
                             // 就停止循环,此时j便是R[i]该插入的位置
11
                break;    
12
            j++;      // 如果R[i]大于当前遍历的数据R[j],则j自加,继续遍历后面的数据
13
        }
14
        
15
        while(j<i)   // 插入R[i]到指定位置
16
        {
17
            swap(R[i], R[j++]);     // 将在R[i]插入位置j之后的数据依次往后移 
18
        }
19
    }
20
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值