排序基于c语言对插入排序算法的分析研究(理工范文)

插入排序  时间:2021-01-30  阅读:()

封面

《基于c语言对插入排序算法的分析研究》Word格式可编辑含目录

精心整理放心阅读欢迎下载

文档信息

基于c语言对插入排序算法的分析研究

目录

一、插入排序的基本原理及分类

(一)插入排序的基本原理

(二)插入排序的分类

二、直接插入排序( Straight Iertion Sort)

(一)直接插入排序的基本思想

(二)直接插入排序详细过程及c语言程序代码

(三)直接插入排序算法的性能分析

1)初始序列是顺序排列时

(四)直接插入排序的改进

三、希尔排序( Shell Sort)

(一)希尔排序基本原理

(二)希尔排序算法性能分析

四、结语

正文

摘要数据处理是计算机编程中经常会遇到的问题而数据排序又是数据处理中的重要组成部分其中排序算法是数据排序中的核心技

术。在很多情况下排序算法决定着一个程序的执行效率在实际的编程开发中如何根据具体的问题环境选择合适有效的排序算法就显得尤为重要。本文针对插入排序算法展开研究对其排序算法原理和特点进行了分析希望能给相关领域的学者带来帮助

关键字 c语言;排序算法;直接插入排序;二分查找;希尔排序

随着大数据时代的到来数据量爆炸式增长数据排序越显重要。排序好的数据在进行各种操作时都会更加便捷处理效率也会更高效。排序算法是数据排序的灵魂决定着所用时间的多少 以及所占空间的大小。下面对基于c语言的插入排序进行详细的分析研究。

一、插入排序的基本原理及分类

(一)插入排序的基本原理

插入排序是内部排序算法的一种其基本原理是在一次插入操作中按照排序码的大小将一个待排序元素插入到一组有序元素的适当位置上去直到元素全部插入为止。

(二)插入排序的分类

在执行具体插入操作时根据插入方法的不同主要分为三种插入排序算法分别是直接插入排序、带二分查找的直接插入排序和希尔排序。下面对这三种插入排序算法进行详细分析。

二、直接插入排序( Straight Iertion Sort)

(一)直接插入排序的基本思想

直接插入排序的基本思想是在一组待排序的元素中按一定的顺序取出一个元素将这个元素按排序码的大小插入到排好序了的元素序列中进而得到一个新的有序的总元素数目加一的有序表直到所有的元素都插入到这个有序表中为止。

(二)直接插入排序详细过程及c语言程序代码

下面举例说明假设有一个N= 6个的待排序元素排序码相同的用*加以区分。其中的临时变量temp起暂存的作用。

(三)直接插入排序算法的性能分析

时间复杂度分析:初始元素的序列是是影响直接插入排序效率的主要因素 根据初始元素序列的不同其时间复杂度有很大区别。

1)初始序列是顺序排列时 比较N-1次即可完成排序时间复杂度O( N) 。 ( 2)初始序列是逆序排列时需比较N* ( N-1) /2次时间复杂度O( N^2) 。 ( 3)初始序列杂乱无序时平均时间复杂度O( N^2) 。 空间复杂度分析:在直接插入排序中临时变量t emp暂存待插入元素空间复杂度O( 1) 。 算法稳定性分析:所谓算法稳定性指的是如果待排序记录中有重复元素在排序后这些元素的相对位置如果保持不变那么这个排序算法就是稳定的。反之则

不稳定。在图( a) 中容易发现排序码相同的记录的相对位置没有变化可见直接插入排序算法是稳定的排序算法。

(四)直接插入排序的改进

直接插入排序算法在进行位置查找操作中可以进行性能改进那就是在寻找合适的插入位置时使用二分查找算法但插入操作的基本原理不变这样就可以大大减少元素比较次数提高算法效率。这种改进之后的算法又叫带二分查找的直接插入排序。

三、希尔排序( Shell Sort)

(一)希尔排序基本原理

希尔排序是在直接插入排序的基础上的一种改进实际上是将待排序序列分组进行直接插入排序在分组时会出现增量这个概念增量其实就是同一组数据中相邻元素的下标相隔距离。希尔排序利用了在数据量小、元素基本有序时直接插入排序的效率高的特点大大提高了排序的效率。

(二)希尔排序算法性能分析

时间复杂度分析:希尔排序算法的时间复杂度分析较复杂整个过程中元素的比较次数和移动次数因所选择的增量的不同而有较大差异。 整体上来看希尔排序的时间复杂度是O( N* l ogN) 。步长gap不同时间复杂度会受影响根据现有研究随着步长变化希尔排序时间复杂度在O( N* l ogN)与O( N^2)之间具体详细的时间复杂度与

步长gap的关系还在研究中。 算法稳定性:希尔排序算法是不稳定的这一点在其程序代码中也能发现在进行分组时两个排序码相同的元素的相对位置可能发生变化。

四、结语

在这个数据时代中数据处理是经常会遇到的问题数据排序是数据处理中很重要的一环研究排序算法具有重要的意义。本文主要研究了基于c语言的插入排序算法并对三种插入排序算法进行了详细的分析。明确各种排序算法的适用条件熟练掌握算法思想针对实际问题灵活运用有助于我们更好的完成数据处理工作。

参考文献:

[1]李晶.直接插入排序算法分析与实现[J] .中国科技信息2007( 24) : 347+349。

[2]刘模群.排序算法时间复杂度研究[J] .软件导刊

2012 11( 06) : 35-38。

计算机类期刊推荐 《微电子学与计算机》 (月刊)创刊于1972年 由中国航天时代电子公司第七七一研究所主办。是我国微电子技术与计算机技术相结合的唯一专业性国家中文核心期刊 同时也是中国计算机学会会刊。本刊的宗旨是严谨认真求实创新;以人为本研以致用;弘扬科学追求真理。

“基于c语言对插入排序算法的分析研究”由本人精心编辑整理内容源于网络仅供学习交流请勿商用。如有侵犯作者权益请留言或者发站内信息联系本人我将尽快删除。谢谢您的阅读与下载

妮妮云(119元/季)日本CN2 2核2G 30M 119元/季

妮妮云的知名度应该也不用多介绍了,妮妮云旗下的云产品提供商,相比起他家其他的产品,云产品还是非常良心的,经常出了一些优惠活动,前段时间的八折活动推出了很多优质产品,近期商家秒杀活动又上线了,秒杀产品比较全面,除了ECS和轻量云,还有一些免费空间、增值代购、云数据库等,如果你是刚入行安稳做站的朋友,可以先入手一个119/元季付的ECS来起步,非常稳定。官网地址:www.niniyun.com活动专区...

收到几个新商家投稿(HostMem,无忧云,青云互联,TTcloud,亚洲云端,趣米云),一起发布排名不分先后

7月份已经过去了一半,炎热的夏季已经来临了,主机圈也开始了大量的夏季促销攻势,近期收到一些商家投稿信息,提供欧美或者亚洲地区主机产品,价格优惠,这里做一个汇总,方便大家参考,排名不分先后,以邮件顺序,少部分因为促销具有一定的时效性,价格已经恢复故暂未列出。HostMem部落曾经分享过一次Hostmem的信息,这是一家提供动态云和经典云的国人VPS商家,其中动态云硬件按小时计费,流量按需使用;而经典...

Megalayer促销:美国圣何塞CN2线路VPS月付48元起/香港VPS月付59元起/香港E3独服月付499元起

Megalayer是新晋崛起的国外服务器商,成立于2019年,一直都处于稳定发展的状态,机房目前有美国机房,香港机房,菲律宾机房。其中圣何塞包括CN2或者国际线路,Megalayer商家提供了一些VPS特价套餐,譬如15M带宽CN2线路主机最低每月48元起,基于KVM架构,支持windows或者Linux操作系统。。Megalayer技术团队行业经验丰富,分别来自于蓝汛、IBM等知名企业。Mega...

插入排序为你推荐
免费卡巴斯基杀毒软件怎样免费用卡巴斯基杀毒软件?softbank手机中国哪里有softbank手机卖?美女桌面背景图片收1280x800超美女桌面背景地址手动挡和自动挡哪个好自动挡手动挡哪个好?炒股软件哪个好网上买卖股票软件哪个好用无纺布和熔喷布口罩哪个好表层水刺布,中间层pp无纺布+熔喷布,里层pp无纺布口罩好吗?无纺布和熔喷布口罩哪个好大雾天气带什么样的口罩最好电陶炉和电磁炉哪个好电陶炉和电磁炉哪个好清理手机垃圾软件哪个好清理手机垃圾的软件哪个好空间登录qq手机QQ能不能直接登录空间而不用上QQ
美国linux主机 vps代购 日本软银 主机测评网 免费cdn加速 新世界电讯 admit的用法 91vps 流媒体加速 移动服务器托管 申请免费空间 双线空间 测速电信 域名转入 登陆qq空间 广东主机托管 服务器托管价格 xshell5注册码 godaddyssl 服务器是什么 更多