直接插入排序_第1页
直接插入排序_第2页
直接插入排序_第3页
直接插入排序_第4页
直接插入排序_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构北京电子科技职业学院目录直接插入排序直接插入排序将无序子序列中的一个或几个记录“插入”到有序序列中,从而增加记录的有序子序列的长度。有序序列r[1..i-1]r[i]

无序序列r[i..n-1]一趟直接插入排序的基本思想:有序序列r[1..i]无序序列r[i+1..n-1]直接插入排序一趟插入排序的基本步骤将R[i]插入到R[j+1]的位置上将R[j+1…i-1]中的所有记录均后移一个位置在R[1…i-1]中查找R[i]的插入位置,满足R[1…j].key<=R[i].key<R[j+1…i-1].key;实现“一趟插入排序”分为三步直接插入排序不同的位置查找方法导致不同的算法描述:直接插入排序(基于顺序查找)折半插入排序(基于折半查找)希尔排序(基于逐趟缩小增量)直接插入排序6利用顺序查找实现在r[1..i-1]中查找r[i]的插入位置从r[i-1]起向前进行顺序查找,监视哨设置在r[0];r[0]=r[i];循环结束表明r[i]的插入位置为j+1r[0]jr[i]for(j=i-1;r[0].key<r[j].key;--j);j=i-1插入位置直接插入排序对于在查找过程中找到的那些关键字不小于r[i].key的记录,并在查找的同时实现记录向后移动;for(j=i-1;r[0].key<r[j].key;--j)

r[j+1]=r[j];上述循环结束后可以直接进行“插入”

r[j+1]=r[0];直接插入排序令i=2,实现整个序列的排序for(i=2;i<=n;i++)if(R[i].key<R[i-1].key){

在R[1…i-1]中查找R[i]的插入位置;插入R[i];}有序序列无序序列i=2i=3i=nR[n]R[3]R[2]3,…,nR[1]直接插入排序voidInsSort(RecordTyper[],intlength){inti,j;for(i=2;i<=length;i++){

r[j+1]=r[0];

/*将待插入记录插入到已排序的序列中*/}}

r[0]=r[i];

/*将待插入记录存放到监视哨r[0]中*/

j=i-1;while(r[0].key<r[j].key)

/*寻找插入位置*/

{r[j+1]=r[j];j--;}直接插入排序关键字在记

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论