首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。 【说明】下面是一个用C编写的快速排序算法。为了避免最坏情况,取基准记录pivot时,采用从left、right和mid=[(left+right)/2]中取中间值,并交换到right位置的办
阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。 【说明】下面是一个用C编写的快速排序算法。为了避免最坏情况,取基准记录pivot时,采用从left、right和mid=[(left+right)/2]中取中间值,并交换到right位置的办
admin
2009-02-15
40
问题
阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。
【说明】下面是一个用C编写的快速排序算法。为了避免最坏情况,取基准记录pivot时,采用从left、right和mid=[(left+right)/2]中取中间值,并交换到right位置的办法。数组a存放待排序的一组记录,数据类型为T,left和right是待排序子区间的最左端点和最右端点。
void quicksort (int a[], int left, int right) {
int temp;
if (left<right) {
hat pivot = median3 (a, left, right); //三者取中子程序
int i = left, j = right-1;
for(;;){
while (i <j && a
< pivot) i++;
while (i <j && pivot < a[j]) j--;
if(i<j){
temp = a
; a[j] = a
; a
= temp;
i++; j--;
}
else break;
}
if (a
> pivot)
{temp = a
; a
= a[right]; a[right] = temp;}
quicksort( (1) ); //递归排序左子区间
quieksort(a,i+1 ,right); //递归排序右子区间
}
}
void median3 (int a[], int left, int right)
{ int mid=(2);
int k = left;
if(a[mid] < a[k])k = mid;
if(a[high] < a[k]) k = high; //选最小记录
int temp = a[k]; a[k] = a[left]; a[left] = temp; //最小者交换到 left
if(a[mid] < a[right])
{temp=a[mid]; a[mid]=a[right]; a[right]=temp;}
}
消去第二个递归调用 quicksort (a,i+1,right)。 采用循环的办法:
void quicksort (int a[], int left, int right) {
int temp; int i,j;
(3) {
int pivot = median3(a, left, right); //三者取中子程序
i = left; j = righi-1;
for (;; ){
while (i<j && a
< pivot)i++;
while (i<j && pivot <a[j]) j--;
if(i <j) {
temp = a
; a[j]; = a
; a
=temp;
i++; j--;
}
else break;
}
if(a
>pivot){(4);a
=pivot;}
quicksoft ((5)); //递归排序左子区间
left = i+1;
}
}
选项
答案
(1)a,left,i-1 (2)(left+right+1)/2 (3)while(left<right) (4)a[right)=a[i] (5)a,left, i-1
解析
(1)a,left,i-1
递归排序左子区间,从left到i-1元素,不包括i元素。
(2)(left+right+1)/2
三者取中子程序median3(a,left,right),取基准记录pivot时,采用从left、right和 mid=[(left+right)/2]中取中间值,并交换到right位置的办法。
(3)while(left<right)
循环直到left和right相遇。
(4)a[right)=a
若a
>pivot则让a[right]=a
而让a
=pivot;。
(5)a,left, i-1
递归排序左子区间,从left到i-1元素,不包括i元素。
转载请注明原文地址:https://kaotiyun.com/show/xMDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
以下关于软件测试原则的叙述中,正确的是()。
按照测试实施组织,可将测试划分为开发方测试、用户测试、第三方测试。下面关于开发方测试的描述正确的是______。①开发方测试通常也叫“验证测试”或“Alpha测试”②开发方测试又称“Beta测试”③开发方测试可以从软件产品编码结束之
(16)是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。
可用于编写独立程序和快速脚本的语言是()。
为保证测试活动的可控性,必须在软件测试过程中进行软件测试配置管理,一般来说,软件测试配置管理中最基本的活动包括(65)
某软盘有40个磁道,磁头从一个磁道移至另一个磁道需要5ms。文件在磁盘上非连续存放,逻辑上相邻数据块的平均距离为10个磁道,每块的旋转延迟时间及传输时间分别为100ms和25ms,则读取一个100块的文件需要时间为(24)。
ISO/IEC9126《软件工程产品质量》统一了多种质量模型。其中,下述关于软件使用质量的描述,不正确的是______。A.它测量用户在特定环境中能达到其目标的程度,不是测量软件自身的属性B.使用质量的属性分为4个特性:有效性、生产率、安全性和满意度
随机试题
乌梅丸中黄连与黄柏的配伍作用是
鉴别肾上腺皮质腺瘤与异位ACTH综合征最简便的实验室检查是
一般来说,债券价格与到期收益率成(),债券的市场交易价格同市场利率成()。
必须毫不动摇地鼓励、支持和引导非公有制经济的发展。各种所有制经济完全可以在市场竞争中发挥各自优势,相互促进、共同发展。这表明在我国社会主义初级阶段()
()是教育政策的根本特征。
我国学位设学士、硕士、博士以及博士后四个等级。()
一般来讲,研究教育现象和教育问题,揭示教育规律的科学是()。
【2014年辽宁营口.单选】()是德育实践经验的概括和总结。
拘传是指公安机关、人民检察院和人民法院强制犯罪嫌疑人、被告人到案接受讯问的一种强制方法。()
Youhaveenoughmoneytopurchaseeitherahouseorabusiness.Whichwouldyouchoosetobuy?Givespecificreasonstoexplain
最新回复
(
0
)