重要提示:请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
首页 > 学历类考试> 自考公共课
网友您好,请在下方输入框内输入要搜索的题目:
搜题
拍照、语音搜题,请扫码下载APP
扫一扫 下载APP
题目内容 (请给出正确答案)
[主观题]

阅读下列对正整数关键字序列L操作的算法,并回答问题: (1)设L=(28,19,27,49,56,12,10,25,20,50),

阅读下列对正整数关键字序列L操作的算法,并回答问题:

(1)设L=(28,19,27,49,56,12,10,25,20,50),写出f33(L,4)的返回值;

(2)简述函数f33的功能。

int Partition(SeqList*L,int low,int high);

//对L[low…high]做划分,返回基准记录的位置,并使左部的关键字

//都小于或等于基准记录的关键字,右部的关键字都大于基准记录的关键字

int f33(SeqList L,int k){

int low,high,pivotpos;

low=1;

high=L.length;

if(k<low||k>high)

return-1;

do {

pivotpos=Partition(&L,low,high);//调用快速排序的划分算法

if(pivotpos<k)

low=pivotpos+1;

else if(pivotpos>k)

high=pivotpos-1;

}while(pivotpos!=k);

return L.data[pivotpos];

}

答案
查看答案
更多“阅读下列对正整数关键字序列L操作的算法,并回答问题: (1)设L=(28,19,27,49,56,12,10,25,20,50),”相关的问题

第1题

阅读下列算法,并回答问题: (1)假设数组L[8]={3,0,5,1,6,4,2,7},写出执行函数调用f32(L,8)后的L;

阅读下列算法,并回答问题:

(1)假设数组L[8]={3,0,5,1,6,4,2,7},写出执行函数调用f32(L,8)后的L;

(2)写出上述函数调用过程中进行元素交换操作的总次数。

void fS2(int R[],int n){

int i,t;

for(i=0;i<n-1;i++)

while(R[i]!=i){

t=R[R[i-1];

R[R[i]]=R[i];

R[i]=t;

}

}

点击查看答案

第2题

下列关于FFT的说法中错误的是()。

A.FFT是一种新的变换

B.FFT是DFT的快速算法

C.FFT基本上可以分成按时间抽取法和按频率抽取法两类

D.基2 FFT要求序列的点数为 (其中 为整数)

点击查看答案

第3题

若序列中关键字相同的记录在排序前后的相对次序不变,则称该排序算法是______的。

点击查看答案

第4题

问题描述:最优求幂问题:给定一个正整数n和一个实数x,如何用最少的乘法次数计算出xn.例
如,可以用6次乘法逐步计算x23如下:问题描述:最优求幂问题:给定一个正整数n和一个实数x,如何用最少的乘法次数计算出xn.例如,可以用6.可以证明,计算x23最少需要6次乘法.计算x23的幂序列中各幂次1、2、3、5、10、20、23组成了一个关于整数23的加法链.一般情况下,计算xn的幂序列中各幂次组成正整数n的一个加法链:

问题描述:最优求幂问题:给定一个正整数n和一个实数x,如何用最少的乘法次数计算出xn.例如,可以用6

上述最优求幂问题相应于正整数n的最短加法链问题,即求n的一个加法链,使其长度r达到最小.正整数n的最短加法链长度记为l(n).

算法设计:对于给定的正整数n,计算相应于正整数n的最短加法链.

数据输入:由文件input.txt给出输入数据.第1行有1个正整数n.

结果输出:将计算的最短加法链长度l(n)和相应的最短加法链输出到文件output.txt.

问题描述:最优求幂问题:给定一个正整数n和一个实数x,如何用最少的乘法次数计算出xn.例如,可以用6

点击查看答案

第5题

排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。下列排序算法中效率最高的是()

A.冒泡排序算法

B.选择排序算法

C.插入排序算法

D.快速排序算法

点击查看答案

第6题

已知线性表的存储结构为顺序表,阅读下列算法,并回答问题: (1)设线性表L=(21,-7,-8,19,0,-11,34,

已知线性表的存储结构为顺序表,阅读下列算法,并回答问题:

(1)设线性表L=(21,-7,-8,19,0,-11,34,30,-10),写出执行f30(&L)后的L状态;

(2)简述算法f30的功能。

void f30(SeqList*L){

int i,j;

for(i=j=0;i<L—>length;i++)

if(L—>data[i]>=0){

if(i!=j)L—>data[j]=L—>data[i];

j++;

}

L—>length=j;

}

点击查看答案

第7题

以下将ah,…am,和am+1…an,两个有序序列(它们相应的关键字值满足Kh≤Km,Km+1≤…Kn,)合并成一个有序序

以下将ah,…am,和am+1…an,两个有序序列(它们相应的关键字值满足Kh≤Km,Km+1≤…Kn,)合并成一个有序序列Rh,…,Rn,(使其关键字值满足Kh,'≤…≤Kn,')。请分析算法,并在______上填充适当的语句。

void merge(list a,list R,int h,int m,int n)

{i=h;k=h;j=m+1;

while((i<m)&&(j<=n))

{ if(a[i].key<=a[i].key){R[k]=______;______;}

else{R[k]=______;______;}

k++;

}

while(i<=______){R[k]=a[i];i++;k++;)

while(j<=______){R[k]=a[j];j++;k++;}

}

此算法的执行时间为______。

点击查看答案

第8题

任给12个互异的整数,其中10个已组织为一个有序序列,现需要插入剩余的两个以完成整体排序,若采用CBA式算法,最坏情况下至少需做几次比较?为什么?

点击查看答案

第9题

阅读下列算法,并回答问题: (1)设顺序表L=(3,7,11,14,20,51),写出执行f30(&L,15)之后的L; (

阅读下列算法,并回答问题:

(1)设顺序表L=(3,7,11,14,20,51),写出执行f30(&L,15)之后的L;

(2)设顺序表L=(4,7,10,14,20,51),写出执行f30(&L,10)之后的L;

(3)简述算法的功能。

void f30(SeqList*L,DataType x)

{

int i=0,j;

while(i<L->length&&x>L->data[i])i++

if(i<L—>length&& x==L—>data[i]{

for(j=i+1;j<L—>length;j++)

L—>data[j-1]=L—>data[j];

L—>length--;

}else{

for(j=L—>length;j>i;j--)

L—>data[j]=L—>data[j-1];

L—>data[i]=x;

L—>length++;

}

}

点击查看答案

第10题

关于查找和排序,下列叙述正确的是()。

A.排序只能对数字进行。

B.冒泡排序属于选择排序。

C.所有的排序类算法,其效率与对象的原始状态无关。

D.折半查找只能在有序数据序列中进行。E查找类算法的元操作是比较。

点击查看答案
下载APP
关注公众号
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案 购买前请仔细阅读《购买须知》
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《服务协议》《购买须知》
立即支付 系统将自动为您注册账号
已付款,但不能查看答案,请点这里登录即可>>>
请使用微信扫码支付(元)

订单号:

遇到问题请联系在线客服

请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示:请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
请用微信扫码测试
优题宝