【笔记】数据结构-直接插入排序

  • 概念:
  1. 取得一个标志位的值
  2. 将后面的元素依次与前方的元素对比,直至找到自己合适位置,并插入其中
  3. 如果无法找出比它更小的值,则它应该为初始值
  • 时间复杂度:O(n²)
  • 稳定性:高

public void InsertSort(int[] dataArray)
{
    for(int i =1;i<dataArray.Length;i++)
    {
        int iValue=dataArray[0];    //标志数据
        bool isInsert=false;    //是否插入过数据
        for (int j=i-1;j>0;j--)
        {
            //判断当前数据是否比标志数据大,比它大则不动,小就要往前插入
            if(dataArray[j]>iValue)  
            {
                dataArray[j+1]=dataArray[j];
            }
            //当前数据比标志数据小
            else
            {
                data[j+1]=iValue;
                isInsert=true;
                break;
            }
        }
        if(isInsert==false)
        {
            data[0]=iValue;
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值