试题详情
- 简答题已知下列各种初始状态(长度为n)的元素,试问当利用直接插入排序进行排序时,至少需要进行多少次比较(要求排序后的记录由小到大顺序排列)? ⑴关键码从小到大有序(key1< key2< …< keyn)。 ⑵关键码从大到小有序(key1> key2 >…> keyn)。 ⑶奇数关键码顺序有序,偶数关键码顺序有序(key1< key3< …,key2key4…)。 ⑷前半部分元素按关键码顺序有序,后半部分元素按关键码顺序有序,即:(key1< key2< …< keym,keym+1< keym+2 <…)
- 依题意,最好情况下的比较次数即为最少比较次数。
⑴插入第i(2≤i≤n)个元素的比较次数为1,因此总的比较次数为:1+1+……+1=n-1
⑵插入第i(2≤i≤n)个元素的比较次数为i,因此总的比较次数为:2+3+……+n=(n-1)(n+2)/2
⑶比较次数最少的情况是所有记录关键码按升序排列,总的比较次数为:n-1
⑷在后半部分元素的关键码均大于前半部分元素的关键码时需要的比较次数最少,总的比较次数为:n-1 关注下方微信公众号,在线模考后查看
热门试题
- 设计两个有序单链表的合并排序算法。
- 从逻辑上可以把数据结构分为()两大类。
- 一棵一般树的结点的前序遍历和后序遍历分别
- 对n个元素进行冒泡排序时,最少的比较次数
- 数据结构里,度为0的结点称为叶子,又称为
- 已知循环队列的存储空间为数组data[2
- 某完全二叉树按层次编号后,某结点是i,若
- 在一棵B—树中删除关键码,若最终引起树根
- 对于一棵具有n个结点的二叉树,对应二叉链
- 在非递归调用的情况下,数据区的分配方法采
- 对于长度为n的顺序存储的有序表,若采用二
- 数据结构里,push操作应该栈的哪个部位
- 设顺序表va中的数据元数递增有序。试写一
- 在一个具有n个单元的顺序栈中,假定以地址
- 下面关于散列查找的说法正确的是()
- 设一棵哈夫曼树共有14个非叶结点,则该树
- 对于B—树中任何一个非叶结点中的某个关键
- 分别以下列序列构造二叉排序树,与用其它三
- (1)一组记录的关键字序列为(47,80
- 用邻接表表示图进行广度优先遍历时,通常借