题目详情
当前位置:首页 > 职业培训考试
题目详情:
发布时间:2023-09-29 07:38:22

[单项选择]对n个基本有序的整数进行排序,若采用插入排序算法,则时间和空间复杂度分别为(1);若采用快速排序算法,则时间和空间复杂度分别为(2)。空白(1)处应选择()
A. O(n2)和O(n)
B. O(n)和O(n)
C. O(n2)和O(1)
D. O(n)和O(1)

更多"对n个基本有序的整数进行排序,若采用插入排序算法,则时间和空间复杂度分"的相关试题:

[单项选择]对n个基本有序的整数进行排序,若采用插入排序算法,则时间和空间复杂度分别为(1);若采用快速排序算法,则时间和空间复杂度分别为(2)。空白(2)处应选择()
A. O(n2)和O(n)
B. O(nlgn)和O(n)
C. O(n2)和O(1)
D. O(nlgn)和O(1)
[简答题]N个有序整数数列已放在一维数组中,给定下列程序中,函数fun( )的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。
折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high),然后把m与中间位置(mid)中元素的值进行比较。如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中。直到low>high,查找结束。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#define N 10
/*************found*********************/
void fun(int a[],int m)
int low--0,high=N-l,mid;
while (low<=high)
mid=(low+high)/2;
if(m<a[mid])
high=mid-1;
/*************found*********************/
else if(m>=a [mid])
low=mid+1;
else return(mid);

return(-1);

main ( )
int i,a[N]=-3,4,7,9,13,24,67,89,100,180,k,m;
printf ("a数组中的数据如下: ");
for(i=0;i<N;i++) printf("%d",a[i]);
printf ("Enter m: "); scanf ("%d", &m);
k=fun (a,m);
if (k>=0) printf ("m=%d, index=%d/n",m, k);

[填空题]由N个有序整数组成的数列已放在一维数组中,下列给定程序中,函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。
折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(low<high),然后用m与中间位置(mid)上元素的值进行比较。如果m的值大于中间位置元素的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中。直到low>high,查找结束。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 10
/************found********/
void fun(int a[],int m)

int low=0,high=N-1,mid;
while(low<=high)

mid=(low+high)/2;
if(m<a[mid])
high=mid-1;
/**********found*********/
else If(m>a[mid])
low=mid+1;
else return(mid);

return(-1);

main( )

int i,a[N]=-3,4,7,9,13,45,67,89,100,180,k,m;
printf("a数组中的数据如下:");
for(i=0;i<N;i++)
printf("%d",a[i]);
printf("Enter m:");
scanf("%d",&m);
k=fun(a,m);
if(k>=0)
printf("m=%d,index=%d/n",m,k);
else printf("Not be found!/n");

[单项选择]有n个结点的有序单链表中插入一个新结点并保持有序的运算的时间复杂度为______。
A. O(1)
B. O(logn)
C. O(n)
D. O(n2)
[单项选择]设有n个元素的向量,逐个输入其中的元素值,建立一个有序单链表的时间复杂度是()。
A. O(1)
B. O(n)
C. O(n2)
D. O(nlog2n)
[单项选择]采用插入排序算法对n个整数排序,其基本思想是:在插入第i个整数时,前i-1个整数已经排好序,将第i个整数依次和第i-1,i-2,…个整数进行比较,找到应该插入的位置。现采用插入排序算法对6个整数{5,2,4,6,1,3}进行从小到大排序,则需要进行(31)次整数之间的比较。对于该排序算法,输入数据具有(32)特点时,对整数进行从小到大排序,所需的比较次数最多。空白(31)处应选择()
A. 9
B. 10
C. 12
D. 13
[单项选择]对n个元素的数组进行(),其平均时间复杂度和最坏情况下的时间复杂度都是O(nlogn)。
A. 希尔排序
B. 快速排序
C. 堆排序
D. 选择排序
[单项选择]向具有n个结点的堆中插入一个新元素的时间复杂度为()。
A. O(1)
B. O(n)
C. O(log2n)
D. O(nlog2n)
[单项选择]设X=ab,Y=cd分别为2位二进制正整数,X>Y的逻辑表示式是( )。
A. ac + abd + bcd
B. ac + adb + bcd
C. ad + abc + bed
D. ac + bcd + abd
[填空题]算法复杂度主要包括时间复杂度和【 】复杂度。
[填空题]算法复杂度主要包括时间复杂度和 【1】 复杂度。
[填空题]算法复杂度主要包括时间复杂度和 【2】 复杂度。

我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码