打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
8大排序算法之:直接插入排序(Straight Insertion Sort)

直接插入排序(StraightInsertion Sort)

将一个记录插入到已经排好序的有序表中,从而得到一个新的记录增一的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。

如:int[] Key = newint[]{45,34,78,12,34,32,29,64};

排序过程:


///<summary>

///直接插入排序

///</summary>

///<paramname="key">需要排序的关键字序列</param>

public static void StraightInsertSort(int[] key)

{

    for(inti = 1; i < key.Length; i++)

    {

        int j = i - 1;

        int current = key[i];

        while(j >= 0 && key[j] > current)

        {

           key[j + 1] = key[j];

           j--;

        }

        key[j+ 1] = current;

    }

}

///<summary>

///直接插入排序

///</summary>

///<typeparamname="T">需要排序记录的类型</typeparam>

///<paramname="array">需要排序的记录集合</param>

public static void StraightInsertSort<T>(T[] array)

    where T : IComparable<T>

{

    for(int i = 1; i < array.Length; i++)

    {

        int j = i - 1;

        T current = array[i];

        while(j >= 0 && array[j].CompareTo(current)>0)

        {

           array[j + 1] = array[j];

           j--;

        }

       array[j + 1] = current;

    }

}

如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面,所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。


华北电力大学LSGO软件技术团队成立于2010年09月25日,团队主要以机器学习地理信息系统为主要研究方向,成立几年来为学校培养了大量优秀人才,他们或者就职于IBM、阿里巴巴、网易游戏、百度等IT企业,或者就读于中科院信安所、中科院计算所、中科院自动化所、中国科技大学、北京理工大学、武汉大学、华南理工大学、哈尔滨工业大学、华北电力大学等著名高校。

今年(2016年07月)毕业的李文乔同学保送到北京理工大学,安晟同学继续在华北电力大学读研究生,期间华硕公司,小米公司也希望团队推荐学生就业,综上,来LSGO软件技术团队学习可作为驻保高校学生,打发课余时间的一个不错选择。

如果对我们感兴趣,可以与我联系,通过考核后即可成为我们的一员。

请阅读以下代码(C#),得到联系方式:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
浅谈算法和数据结构(4):快速排序
排序算法一览
轻松学习冒泡、选择、插入排序算法(图解)
归并排序和快速排序(三十二)
选择、冒泡、合并、快速、插入排序算法实现及性能分析
PHP排序算法大全
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服