排序之直接插入排序和折半插入排序
来源:互联网 发布:淘宝优站9.9 编辑:程序博客网 时间:2024/06/05 06:33
直接插入排序和折半插入排序
#include <iostream>#include <cstdio>#define Maxsize 100using namespace std;typedef int KeyType;typedef char* InfoType;typedef struct{ KeyType key; InfoType otherinfo;} RedType;typedef struct{ RedType r[Maxsize]; int length;} SeqList;void Create(SeqList &L){ cout<<"Please Input the Length of the SeqList:"<<endl; scanf("%d",&L.length); if(L.length==0) return; cout<<"Please Input the datas of the SeqList:"<<endl; for(int i=1; i<=L.length; i++) { scanf("%d",&L.r[i]); L.r[i].otherinfo=NULL; }}void OutPut(SeqList L){ cout<<"The SeqList is:"<<endl; for(int i=1; i<=L.length; i++) { cout<<L.r[i].key<<" "; } cout<<endl;}void InsertSort(SeqList &L)///直接插入排序{ int i,j; for(i=2; i<=L.length; i++) { L.r[0]=L.r[i];// for(j=i-1;L.r[0].key<L.r[j].key;j--)//方法一// {// L.r[j+1]=L.r[j];// }// L.r[j+1]=L.r[0]; int j=i-1;///方法二 while(L.r[j].key>L.r[0].key && j>=1) { L.r[j+1]=L.r[j]; j--; } L.r[j+1]=L.r[0]; }}void BiSertSort(SeqList &L)///折半插入排序{ int low,high,mid,i,j; for(int i=2;i<=L.length;i++) { L.r[0]=L.r[i]; low=1; high=i-1; while(low<=high) { mid=(low+high)/2; if(L.r[mid].key<L.r[0].key) { low=mid+1; } else high=mid-1; } for(int k=i-1;k>=high+1;k--) L.r[k+1]=L.r[k]; L.r[high+1]=L.r[0]; }}int main(){ SeqList L; Create(L); OutPut(L); InsertSort(L); OutPut(L); BiSertSort(L); OutPut(L); return 0;}
0 0
- 插入排序之直接插入排序和折半插入排序
- 排序之直接插入排序和折半插入排序
- 直接插入排序和折半插入排序
- 直接插入排序和折半插入排序
- 直接插入排序和折半插入实现
- 直接插入排序与折半插入排序
- 直接插入排序,折半插入排序
- 内部排序之插入排序:直接插入排序,折半插入排序,希尔排序
- java实现排序算法之插入排序(直接插入排序,折半插入排序,希尔排序)
- 直接插入排序和折半插入排序算法
- 直接插入排序、折半插入排序、shell插入排序
- 插入排序(希尔排序、直接插入、折半插入排序)
- 数据结构-插入排序(直接插入排序+折半插入排序)
- java数据结构之插入排序(直接插入排序、折半插入排序、希尔排序)
- java实现排序算法之2-路插入排序,直接插入排序,折半插入排序
- 排序之折半插入排序
- 插入排序:直接插入排序,折半查找排序,希尔排序
- 排序算法--直接插入排序、折半插入排序、希尔排序
- CodeForces 653A Bear and Three Balls
- git创建仓库,修改和提交
- php 生成唯一订单号,文件锁
- popupwindow和dialog监听返回键
- *Cannot delete or update a parent row: a foreign key constraint fails ... /ConstraintViolationExcept
- 排序之直接插入排序和折半插入排序
- redis之redis-trib集群管理
- Linux下安装MYSQL (三、设置初始密码 )
- CityMaker学习教程08 一个示例,创建漫游路径
- MyBatis-搭建MyBatis开发环境二(MyEclipse版)
- Linux:yum安装软件工具
- Android网络基础之HttpClient与HttpURLConnection
- ViewState EnableViewState 禁用与使用心得
- 已读博客文章