第十章排序:计算机程序设计中关键操作.pdfVIP

  • 0
  • 0
  • 约6.32千字
  • 约 6页
  • 2026-01-26 发布于北京
  • 举报

第十章排序:计算机程序设计中关键操作.pdf

第十章排序

排序(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)

1亿VIP精品文档

相关文档