直接插入排序直接插入排序
//Microsoft Visual C++ 6.0 //严蔚敏
//p.264
//p.265
#include
typedef int InfoType; #define LT(x,y) (x)<(y)
#define MAXSIZE 20 //一个用作示例的小顺序表最大长度 typedef int KeyType; //定义关键字类型为整数类型 typedef struct
{
KeyType key; //关键字项
InfoType otherinfo; //其它数据项
}RedTy...
直接插入排序
//Microsoft Visual C++ 6.0 //严蔚敏
//p.264
//p.265
#include
typedef int InfoType; #define LT(x,y) (x)<(y)
#define MAXSIZE 20 //一个用作示例的小顺序最大长度 typedef int KeyType; //定义关键字类型为整数类型 typedef struct
{
KeyType key; //关键字项
InfoType otherinfo; //其它数据项
}RedType; //记录类型
typedef struct
{
RedType r[MAXSIZE+1]; //r[0]闲置或用作哨兵
int length; //顺序表长度
}SqList; //顺序表类型
void InsertSort(SqList &L) //必须是引用参数~
{
int i;
int j;
//对顺序表L作直接插入排序。
for(i=2;i<=L.length;++i)
if(LT(L.r[i].key,L.r[i-1].key)) //"<",需将L.r[i]插入有序子表,使用LT是为了通用化!
试想,如果关键字类型为抽象数据类型,那么小于运算符"<"就需要重载了!
{
L.r[0]=L.r[i]; //复制为监视哨
for (j=i-1;LT(L.r[0].key,L.r[j].key);--j)
L.r[j+1]=L.r[j]; //记录后移
L.r[j+1]=L.r[0]; //插入到正确位置
}
} //InsertSort
void Create(SqList &L,int a[],int n)
{
int i;
for(i=0;i
本文档为【直接插入排序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。