首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列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
32
问题
阅读下列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
软件设计师下午应用技术考试
软考中级
相关试题推荐
以下关于软件测试原则的叙述中,正确的是()。
软件文档按照其产生和使用的范围可分为开发文档、管理文档和用户文档。其中开发文档不包括(8)。
对象是面向对象系统的最基本的元素,一个运行期系统就是对象之间的协作。一个对象通过()改变另一个对象的状态。
编写汇编语言程序时,下列寄存器中程序员可访问的是______。A.程序计数器(PC)B.指令寄存器(IR)C.存储器数据寄存器(MDR)D.存储器地址寄存器(MAR)
在进行产品评价时,评价者需要对产品部件进行管理和登记,其完整的登记内容应包括(35)。①部件或文档的唯一标识符。②部件的名称或文档标题。③文档的状态,包括物理状态或变异方面的状态。④请求者提供的版本、配置和日期信息。
如果在查找路由表时发现有多个选项匹配,那么应该根据___________(25)原则进行选择。假设路由表有4个表项如下所示,那么与地址139.17.179.92匹配的表项是____________(26)。(25)
在结构化分析方法中,数据流图描述数据在系统中如何被传送或变换,反映系统必须完成的逻辑功能,用于(38)建模。在绘制数据流图时,(39)。(38)
系统交付后,修改原来打印时总是遗漏最后一行记录的问题,该行为属于______维护。
从工作的频段、数据传输速率、优缺点以及它们之间的兼容性等方面,对IEEE802.11a、IEEE802.11b和IEEE802.11g进行比较。1.将(1)处空缺设备的名称填写在答题纸的相应位置。2.(1)所在局域网内的PC机或笔记本的IP地址有
随机试题
启明公司计划对其一条生产线进行减值测试,评估基准日为2019年2月1日,当日的5年期国债利率为4%,行业β系数为1.2,市场风险回报率为6%,启明公司对该生产线额外要求的报酬率为2%。则待估生产线的股权资本回报率为()。
要选中所有连接的线条,可在激活箭头工具之后双击线条的某一段。
脉率较速或快慢不定,间有不规则的歇止,为脉率比较缓慢而有不规则的歇止,为
属于保钾利尿药的是
进行项目工作分解的主要方法有()。
当采用变动单价时,合同中可以约定合同单价调整的情况有()。
以下预算中,不以销售预算为基础的是()。
下列关于分级基金特点的说法,错误的是()。
在明代,条例由权宜之法变为永久性法规始于()。
在DOS系统中,带有通配符的文件名*.*表示
最新回复
(
0
)