首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列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
17
问题
阅读下列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测试”③开发方测试可以从软件产品编码结束之
通常测试用例很难100%覆盖测试需求,因为(47)。①输入量太大。②输出结果太多。③软件实现途径多。④测试依据没有统一标准。
可用于编写独立程序和快速脚本的语言是()。
对于逻辑表达式(a&&(b|c)),需要()个测试用例才能完成条件组合覆盖。
在面向对象分析和设计中,用类图给出系统的静态设计视图,其应用场合不包括___________(45)。下图是一个UMI,类图,其中类University和类School之间是___________(46)关系,类Person和类PersonRecord之间
以下关于模块耦合关系的叙述中,耦合程度最低的是__________(39),其耦合类型为___________(40)耦合。(39)
在分布式数据库中有分片透明、复制透明、位置透明和逻辑透明等基本概念,其中:___________(19)是指局部数据模型透明,即用户或应用程序无须知道局部使用的是哪种数据模型;___________(20)是指用户或应用程序不需要知道逻辑上访问的表具体是怎
设系统中有R类资源m个,现有n个进程互斥使用。若每个进程对R资源的最大需求为w,那么当m、n、w取下表的值时,对于下表中的a~e五种情况,(26)两种情况可能会发生死锁。对于这两种情况,若将(27),则不会发生死锁。
某财务系统在使用过程中,因个人所得税政策变化,需修改计算工资的程序。这种修改属于______维护。
阅读以下有关网络规划的叙述,回答问题1、问题2和问题3。网络工程是一项复杂的系统工程,一般可分为网络规划、网络设计、工程实施、系统测试验收和运行维护等几个阶段。网络规划是在需求分析的基础上,进行系统可行性分析和论证,以确定网络总体方案。网络规划阶段
随机试题
甲、乙两家施工企业均具有施工总承包资质。两家企业组成联合体参加一铁路工程的投标,并签订了联合体协议。甲企业为联合体牵头单位。中标后,甲、乙两家企业分别与发包方签订了施工承包合同,并在承包合同中约定甲、乙两家企业分别就中标工程质量向发包方承担责任。工程开工后
利润表是反映企业某一特定日期的财务状况。()
证券公司未按照规定为客户开立账户的,情节严重的,对直接负责的董事、高级管理人员和其他直接责任人员,将被处以3万元以上10万元以下的罚款。( )
下列哪些属于混合成本()。
帆帆和小静正在玩娃娃家的游戏,请问他们在进行()类型的游戏。
学与教相互作用的过程是一个系统过程,该过程包括教师和学生两个要素。()
简述《宋刑统》的特点。
某市标准化行政主管部门制定并发布的工业产品安全的地方标准,在其行政区域内是(62)。
Wateristobepouredatarateof2.5gallonsperminuteintoa500-gallontankthatinitiallycontains50gallonsofwater.
A、7:30.B、8:00.C、8:30.D、9:00.D
最新回复
(
0
)