- 0
- 0
- 约6.32千字
- 约 6页
- 2026-01-26 发布于北京
- 举报
第十章排序
排序(Sorting)是计算机程序序设计中的一种重要
操作。排序方法是稳定的:排序方法是不稳定的:由于待排序的记录数量
不同,使得排序过程中涉及的在器不同,可将排序分为:排序外部排
序待排序的记录数据类型设为:#defineMAXSIZE20typedefintKeyType;
typedefstruct{KeyTypekey;InfoTypeotherinfo;}RedType;typedef
struct{RedTyper[MAXSIZE+1];intlength;}SqList;10.2排序直接
排序(StraightInsertionSort)是一种最简单的排序方法,它的基本操作是
将一个记录到已排好序的有序表中,从而得到一个新的、记录数增1的有序
表。算法10.1voidInsertSort(SqlistL){//对顺序表L作直接排序。
for(i=2;i=L.length;++i)if(LT(L.r[i].key,L.r[i‑1].key)){//“”,需
将L.r[i]有序子表为哨兵L.r[0]=L.r[i];L.r[i]=L.r[i‑1];for(j=
i‑2;LT(L.r[0].key,L.r[j].key);‑‑j)L.r[j+1]=L.r[0];}}//InsertSort10.2.2折半
排序算法10.2折半排序voidBinsertSort(SqListL){//对顺序表L作
折半排序。for(i=2;i=L.length;++i){L.r[0]=L.r[i];low=1;high=i‑1;
while(low=high){m=(low+high)/2;if(LT(L.r{
第十章排序
排序(Sorting)是计算机程序设计中的一种重要操作。
排序方法是稳定的:
排序方法是不稳定的:
由于待排序的记录数量不同,使得排序过程中涉及的在器不同,可将排序分
为:
排序外部排序
待排序的记录数据类型设为:
#defineMAXSIZE20
typedefintKeyType;
typedefstruct{
KeyTypekey;
InfoTypeotherinfo;
}RedType;
typedefstruct{
RedTyper[MAXSIZE+1];
intlength;
}SqList;
10.2排序
直接排序(StraightInsertionSort)是一种最简单的排序方法,它的基本操
作是将一个记录到已排好序的有序表中,从而得到一个新的、记录数增1的
有序表。
算法10.1
voidInsertSort(SqlistL){
//对顺序表L作直接排序。
for(i=2;i=L.length;++i)
if(LT(L.r[i].key,L.r[i-1].key)){//””,需将L.r[i]有序子表为哨兵
L.r[0]=L.r[i];
L.r[i]=L.r[i-1];
for(j=i-2;LT(L.r[0].key,L.r[j].key);--j)
L.r[j+1]=L.r[0];
}
}//InsertSort
10.2.2折半排序
算法10.2折半排序
voidBinsertSort(SqListL){
//对顺序表L作折半排序。
for(i=2;i=L.length;++i){
L.r[0]=L.r[i];
low=1;high=i-1;
while(low=high){
m=(low+high)/2;
if(LT(L.r[0]l.key,L.r[m].key))
high=m-1;
elselow=m+1;
}//while
for(j=i-1;j=high+1;--j)L.r[j+1]=L.r[j]j;
L.f[high+1]=L.r[0];
}//for
原创力文档

文档评论(0)