登录/
注册
下载APP
帮助中心
首页
考试
APP
当前位置:
首页
>
查试题
>
对n个关键码构成的序列采用直接插入排序法进行升序排序的过程是:在插入第i个关键码Ki时,其前面的i-1个关键码已排好序,因此令Ki与Ki-1、Ki-2、...,依次比较,最多到K1为止,找到插入位置并移动相关元素后将Ki插入有序子序列的适当位置,完成本趟(即第i-1趟)排序。以下关于直接插入排序的叙述中,正确的是( )。
单选题
对n个关键码构成的序列采用直接插入排序法进行升序排序的过程是:在插入第i个关键码Ki时,其前面的i-1个关键码已排好序,因此令Ki与Ki-1、Ki-2、...,依次比较,最多到K1为止,找到插入位置并移动相关元素后将Ki插入有序子序列的适当位置,完成本趟(即第i-1趟)排序。以下关于直接插入排序的叙述中,正确的是( )。
A. 若原关键码序列已经升序排序,则排序过程中关键码间的比较次数最少
B. 若原关键码序列已经降序排序,则排序过程中关键码间的比较次数最少
C. 第1趟完成后即可确定整个序列的最小关键码
D. 第1趟完成后即可确定整个序列的最大关键码
查看答案
该试题由用户236****36提供
查看答案人数:40590
如遇到问题请
联系客服
正确答案
该试题由用户236****36提供
查看答案人数:40591
如遇到问题请
联系客服
搜索
热门试题
对n个关键码构成的序列采用简单选择排序法进行排序的过程是:第一趟经过n-1次关键码之间的比较,确定出最小关键码在序列中的位置后,再将其与序列的第一个关键码进行交换,第二趟则在其余的n-1个关键码中进行n-2次比较,确定出最小关键码的位置后,再将其与序列的第二个关键码进行交换……以此类推,直到序列的关键码从小到大有序排列。在简单选择排序过程中,关键码之间的总比较次数为( )。
对有n个记录的表进行直接插入排序,在最坏情况下需要比较()次关键字。
阅读以下说明和C代码,填写程序中的空(1)~(5),将解答写入答题纸的对应栏内。【说明】直接插入排序是一种简单的排序方法,具体做法是:在插入第i个关键码时,k1,k2,…,ki-1已经排好序,这时将关键码ki依次与关键码ki-1,ki-2,…,进行比较,找到ki应该插入的位置时停下来,将插入位置及其后的关键码依次向后移动,然后插入ki。例如,对{17,392,68,36}按升序作直接插入排序时,过程如下:第1次:将392(i=1)插入有序子序列{17},得到{17,392};第2次:将68(i=2)插入有序子序列{17,392},得到{17,68,392};第3次:将36(i=3)插入有序子序列{17,68,392},得到{17,36,68,392},完成排序。下面函数 insertSort用直接插入排序对整数序列进行升序排列,在main函数中调用insertSort并输出排序结果。 【C代码】void insert Sort(int data[],int n)/*用直接插入排序法将data[0]~ data[n-1]中的n个整数进行升序排列*/{ int i,j; int tmp; for(i=1; i<n;i++){ if(data[i]<data[i-1]){ //将data[i]插入有序子序列data[0]~data[i-1] tmp=data[i]; //备份待插入的元素 data[i]=(1); for(j=i-2;j>=0 && data[j] > tmp;j----) //查找插入位置并将元素后移 (2); (3) =tmp; //插入正确位置 }/*if*/ }/*for*/}/*insertSort*/ int main(){ int *bp,*ep; int n,arr[]={17,392,68,36,291,776,843,255}; n = sizeof(arr) / sizeof(int); insertSort(arr,n); bp= (4) ; ep = arr+n; for( ;bp<ep; bp++) //按升序输出数组元素 printf("%d ", (5) ); return 0;阅读以下说明和C代码,填写程序中的空(1)~(5),将解答写入答题纸的对应栏内。【说明】直接插入排序是一种简单的排序方法,具体做法是:在插入第i个关键码时,k1,k2,…,ki-1已经排好序,这时将关键码ki依次与关键码ki-1,ki-2,…,进行比较,找到ki应该插入的位置时停下来,将插入位置及其后的关键码依次向后移动,然后插入ki。例如,对{17,392,68,36}按升序作直接插入排序时,过程如下:第1次:将392(i=1)插入有序子序列{17},得到{17,392};第2次:将68(i=2)插入有序子序列{17,392},得到{17,68,392};第3次:将36(i=3)插入有序子序列{17,68,392},得到{17,36,68,392},完成排序。下面函数 insertSort用直接插入排序对整数序列进行升序排列,在main函数中调用insertSort并输出排序结果。 【C代码】void insert Sort(int data[],int n)/*用直接插入排序法将data[0]~ data[n-1]中的n个整数进行升序排列*/{ int i,j; int tmp; for(i=1; i<n;i++){ if(data[i]<data[i-1]){ //将data[i]插入有序子序列data[0]~data[i-1] tmp=data[i]; //备份待插入的元素 data[i]=(1); for(j=i-2;j>=0 && data[j] > tmp;j----) //查找插入位置并将元素后移 (2); (3) =tmp; //插入正确位置 }/*if*/ }/*for*/}/*insertSort*/ int main(){ int *bp,*ep; int n,arr[]={17,392,68,36,291,776,843,255}; n = sizeof(arr) / sizeof(int); insertSort(arr,n); bp= (4) ; ep = arr+n; for( ;bp<ep; bp++) //按升序输出数组元素 printf("%d ", (5) ); return 0;}
对顺序表中的n个记录进行直接插入排序,在最好情况下需要比较________次关键字
若对n个元素进行直接插入排序,则进行第i趟排序过程前,有序表中的元素个数为 ______。
中国大学MOOC: 对同一待排序列分别进行折半插入排序和直接插入排序,两者之间可能的不同之处是( )。
中国大学MOOC: 对有n个记录的表进行直接插入排序,在最好情况下需比较( )次关键字。
直接插入排序是不稳定的排序方法。
因为接插入排序是稳定的,而Shell 排序是调用若干趟直接插入排序,所以也是稳定的。
中国大学MOOC: n个记录直接插入排序所需的记录最小比较次数是 ( )
直接插入排序的时间复杂度为()
直接插入排序的时间复杂度是()
( )排序又被称为缩小增量排序,是对直接插入排序方法的改进。
直接插入排序和简单选择排序两种排序算法中,关键字的比较次数与初始序列无关的是()
希尔排序是直接插入排序的一种改进方法
将5个不同的数据进行直接插入排序,至多需要比较次数为()
n个元素的数序进行直接插入排序,在最好情况下移动元素的个数是(①),关键字比较的次数是(②)()
在待排序序列的初始排列完全有序时,只有直接插入排序的时间性能最好
设有一组初始关键字序列为(),则第3趟直接插入排序结束后的结果的是。
若对n个元素进行直接插入排序,则进行任一趟排序的过程中,为寻找插入位置而需要的时间复杂度为()
购买搜题卡
会员须知
|
联系客服
免费查看答案
购买搜题卡
会员须知
|
联系客服
关注公众号,回复验证码
享30次免费查看答案
微信扫码关注 立即领取
恭喜获得奖励,快去免费查看答案吧~
去查看答案
全站题库适用,可用于聚题库网站及系列App
只用于搜题看答案,不支持试卷、题库练习 ,下载APP还可体验拍照搜题和语音搜索
支付方式
首次登录享
免费查看答案
20
次
账号登录
短信登录
获取验证码
立即登录
我已阅读并同意《用户协议》
免费注册
新用户使用手机号登录直接完成注册
忘记密码
登录成功
首次登录已为您完成账号注册,
可在
【个人中心】
修改密码或在登录时选择忘记密码
账号登录默认密码:
手机号后六位
我知道了