首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
已知数据表A中每个元素距其最终位置不远,为节省时间,应该采用
[单选题]
已知数据表A中每个元素距其最终位置不远,为节省时间,应该采用的算法是
直接选择排序
堆排序
快速排序
直接插入排序
查看答案及解析
添加笔记
求解答(9)
邀请回答
收藏(97)
分享
纠错
12个回答
添加回答
9
刘志安
答案错了,选择不会受待排序程度的影响
发表于 2017-02-10 23:06:01
回复(1)
4
早安宇宙
明显是插入排序啊,真服了这套题
发表于 2017-02-12 23:32:21
回复(0)
3
Erya_尔雅
答案:D
快速排序的精髓:以一个数k为基准,将数据分割为两部分,其中一部分大于k另外一部分不大于k,从而找到k的位置;然后 按照此方法对两部分数据进行递归操作。因此该方法数据越乱越好。
发表于 2017-03-13 14:32:36
回复(0)
0
牛客铁粉
//使用直接插入法排序 递增
public static void insertSortByTow(int arr[]){
int len=arr.length-1;//数组长度
for(int i=0;i<len;i++){ //默认你选择第一个,后面的数据加入待排序序列
for(int j=i+1;j>0;j--){//取出当前元素的后一个位置
//从后向前扫描 比较
if(arr[j]>arr[j-1])break;//递增排序
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
System.err.println("打印排序后的数组:"+Arrays.toString(arr));
}
发表于 2019-08-16 15:02:23
回复(0)
0
GO_GO_GO
1、选择排序,每次选好一个最小值,与当前i位互换,移动次数很少,排序程度不管是高是低,移动次数都不会有变化。
2、插入排序,将当前a[i]与前面的已排序元素挨个对比,需要大量交换和移动,所以该插入方法对排序程度的高/低很敏感。排序程度较高时,该方法速度会有较大提升。
3、
快速排序的精髓:以一个数k为基准,将数据分割为两部分,其中一部分大于k另外一部分不大于k,从而找到k的位置;然后 按照此方法对两部分数据进行递归操作。因此该方法数据越乱越好。
发表于 2018-01-09 17:10:25
回复(0)
0
LeoLiu
要注意到各排序方法的特点
1、选择排序,每次选好一个最小值,与当前i位互换,移动次数很少,排序程度不管是高是低,移动次数都不会有变化。
2、插入排序,将当前a[i]与前面的已排序元素挨个对比,需要大量
交换和移动,所以该插入方法对
排序程度的高/低很敏感。排序程度较高时,该方法速度会有较大提升。
所以本题选插入排序
发表于 2017-09-15 11:35:02
回复(0)
0
Holiday_12138
堆排序不可以吗?
发表于 2017-07-24 10:47:52
回复(1)
0
双鱼不吃蒜
假设每个元素需要移动的距离不大于k,用堆排序的时间复杂度应该是O(nlogk)最小啊
发表于 2017-03-30 18:12:05
回复(0)
0
笔忆思
明显插排。当需要改变的元素离终点较近。插排时需要发生的改变就较小。则应采用插排。
发表于 2017-03-30 12:19:48
回复(0)
0
Fightglt
快排是找某元素的正确位置,而题目分明离最终位置不远,显然是快速排序呀!
发表于 2017-03-07 20:49:28
回复(0)
0
gaorong
为什么我感觉只要维护一个小根堆就行了 , 所以堆排序
发表于 2017-03-03 22:59:07
回复(0)
0
MightOwt
答案 D
发表于 2017-02-26 14:41:06
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
C++工程师
2017
好未来
Java工程师
上传者:
安宁医院陶大夫
难度:
12条回答
97收藏
3034浏览
热门推荐
相关试题
同一进程下的线程不可以共享的是
Java工程师
C++工程师
2017
好未来
评论
(4)
关于进程状态的说法,下列错误的是
Java工程师
C++工程师
2017
好未来
评论
(2)
在大语言模型中,什么是"Gated...
大模型开发
评论
(1)
关于大模型“上下文窗口”的理解,以...
大模型概念
评论
(1)
Vue Router的全局前置守卫...
Vue
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题