查找和排序(13)

时间:2026-01-15

习题习题习题习题习题习题习题习题习题

void selectSort(list r,int n)

{//对于包含n个元素的待排序列r进行直接选择排序

for(i=1;i<=________;i++) {k=i;

for(j=i+1;j<=n;j++)if(r[j].key<r[k].key)________;

if(______)swap(r[k],r[i]); }

}

2.以下对进行一趟快速排序,请补充完整。

int quickpass(list r,int h,int p)

{//对子序列r[h],r[h+1],……r[p]进行一趟快速排序,以第一个记录的键值为枢纽

i=h;j=p;x=r[i];

while(i<j)

{while((r[j].key>=x.key)&&(i<j))________;

if(i<j)

{________;i++;

while((r[i].key<=x.key)&&(i<j))________;

if(i<j){________;j--;}

}

}

r[i]=________;return(i);

}

3.设带头结点的单链表L,结点数据值为整型。试写出对链表L按“插入方法”排序的算法:LINSORT(L).

4.冒泡排序算法是把大的元素向上移(起泡的上浮),也可把小的元素向下移(起泡的下沉),请给出上浮和下沉过程交替的起泡排序算法。

5.一个线性表中的元素为正整数或负整数。设计一个算法,将正整数和负整数分开,使线性表前一半为负整数,后一半为正整数。不要求对这些元素排序,但要求尽量减少交换次数。

6.已知排序码序列{k1,k2,...,kn}是小顶堆,试写一算法,增加排序码x到堆中{k1,k2,...,kn,x}后,将其调整为小顶堆的算法。(排序码值为ki的记录存于r[i-1]中)

7.请用快速排序思想,设计递归算法实现求n(n>1)个不同元素集合中的第i(0<i<=n)个小元素。

查找和排序(13).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:4.9 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:19元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219