首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
排序算法的效率取决于元素的比较次数与元素的位置移动次数,现需
[单选题]
排序算法的效率取决于元素的比较次数与元素的位置移动次数,现需要对数组进行升序排序,已知一数组的元素为{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},问下面哪种排序算法的效率最高?
插入排序
选择排序
快速排序
冒泡排序
查看答案及解析
添加笔记
求解答(4)
邀请回答
收藏(137)
分享
8个回答
添加回答
8
小明95
冒泡排序,设置一个标记,然后遍历比较一遍时间复杂度也是n啊
发表于 2018-01-05 20:04:33
回复(3)
1
shunqiziran
就这道题目而言,
1.如果插入排序每次插入都是在已有序序列的头部开始向后移动比较的话,需要比较(1+9)*9/2=45次;如果插入排序每次插入都是在已有序序列的尾部开始向前移动比较的话,需要比较9次。
2.选择排序需要比较(1+8)*8/2=36次。
3.优化的冒泡排序可以做到序列事先有序的情况下比较9次返回。
发表于 2018-05-09 19:47:55
回复(0)
18
Doreen_n
插入排序在数组有序时效率最高,因为每次只需要和上一个元素比较,不用移动元素
发表于 2018-01-04 10:13:08
回复(0)
1
一笑而过2222
1. 首先分析插入排序: - 对于已经基本有序的数组(如给定的 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} ),插入排序的效率较高。插入排序在最好情况下(数组已经有序)时间复杂度为O(n),因为它只需要进行n - 1次比较,无需移动元素(这里的n是数组元素个数)。但在一般情况下,其平均时间复杂度为O(n^2)。 2. 接着看选择排序: - 选择排序无论数组是否有序,都需要进行固定次数的比较和交换操作。它的时间复杂度始终为O(n^2),因为它每次都要在未排序部分找到最小(或最大)元素并与当前位置元素交换,对于给定数组,它也需要进行大量不必要的比较操作。 3. 再看快速排序: - 快速排序的平均时间复杂度为O(nlogn),但在最坏情况下(如数组已经有序),时间复杂度会退化为O(n^2)。对于给定的有序数组,它会将数组分成极不平衡的两部分,导致效率降低。 4. 最后看冒泡排序: - 冒泡排序在最好情况下(数组已经有序)时间复杂度为O(n),但它需要进行多次比较操作来确定数组已经有序,对于给定数组,它会进行较多不必要的比较,其平均时间复杂度为O(n^2)。 对于给定的基本有序数组 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} ,插入排序和冒泡排序在最好情况下时间复杂度为O(n),但插入排序在这种情况下比较和移动操作相对更少,所以效率最高。 答案是A。
发表于 2024-11-06 13:16:11
回复(0)
0
前端西瓜哥
感觉对这些算法再加个小判断都只要遍历一遍
发表于 2018-03-28 00:18:19
回复(2)
0
最美不过初见2
tt
发表于 2018-01-23 05:01:40
回复(0)
0
辣椒啊我的女神
数据无须时,快速排序效率最高!
发表于 2018-01-15 18:38:16
回复(0)
0
木子君
通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。逆序排列是最坏情况,o(n^2)
发表于 2018-01-11 17:05:36
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
运维工程师
前端工程师
唯品会
测试工程师
2018
数据库工程师
Java工程师
来自:
唯品会2018校招前端...
上传者:
小小
难度:
8条回答
137收藏
4879浏览
热门推荐
相关试题
字符串全排列
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
测试工程师
安全工程师
c#工程师
数据库工程师
大数据开发工程师
瓜子二手车
2019
评论
(29)
通过构建有序序列,对于未排序数据,...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
测试工程师
安全工程师
2018
奇安信
评论
(0)
设一组初始记录关键字序列为(30,...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
测试工程师
安全工程师
2018
奇安信
评论
(1)
用浏览器访问一个Internet网...
唯品会
Java工程师
运维工程师
前端工程师
测试工程师
数据库工程师
2018
评论
(4)
来自
唯品会2018校招前端、...
以下哪些与编译器的任务有关?
唯品会
Java工程师
运维工程师
前端工程师
测试工程师
数据库工程师
2018
评论
(5)
来自
唯品会2018校招前端、...
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题