校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 直接插入排序
题目

已知数据表A中每个元素距其最终位置不远,为了节省时间,应该采取的算法是()

A.直接选择排序

B.直接插入排序

C.堆排序

D.快速排序

解答

正确答案是 B

因为每个数据里最终目标不远,说明数据基本有序,直接插入排序是数据越有序越快,最快时间复杂度可达到O(n),选择排序无论何时都是O(n^2), 快速排序越有序越慢,它要从后到前遍历找比基准小的,时间复杂度达到O(n),堆排序需要不断进行调整,时间复杂度为O(nlog2^n)

C 6条回复 评论
coderpwh

这节课还挺好懂的

发表于 2023-11-13 21:00:00
0 0
王王王

由于每个元素距离其最终位置不远,所以 此时数据表A中的元素基本有序,当序列已经有序的情况下,使用直接插入排序的时间复杂度为O(n),因此在元素基本有序的情况下,使用直接插入排序算法的时间复杂度最低

发表于 2018-10-13 10:37:46
0 0
花将离

数据表A中每个元素距其最终位置不远,即原表基本有序。直接插入排序在元素基本有序的情况下,时间复杂度能达到O(n)

发表于 2018-10-13 10:37:36
0 0
冬季恋歌

插入排序越有序,时间复杂度越低,最低可以是O(n);

发表于 2018-10-13 10:37:24
0 0
柠檬很甜

基本有序时,选择插入排序  最合适

发表于 2018-10-13 10:37:02
0 0
猪猪猪

若文件初始状态基本有序(指正序),则应选用直接插人

发表于 2018-10-13 10:36:49
0 0