第二趟排序,为什么前半部分比较次数和后半部门比较次数都是3,是那些数在比较,求大神。百度了很久都没找到
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

首页/
已采纳
归并排序比较次数问题
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
1条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
threenewbee 2017-05-12 08:18关注1 3
1 4
首先1和1比,得到1 1
然后3和1(这里的1是指第二个1)比,得到1 1 3
最后3和4比,得到1 1 3 4
后一个类似再举一个例子
1 3 6和2 7 8归并
首先1 2比得到1 2(此时可以得知第二个数组没有比2小的数字,但是第一个数组不一定,所以下面用第一个数组的3和2比)
然后3 2比,得到1 2 3(此时可以得知第一个数组没有比3小的,但是第二个数组不一定,所以下面用3 7比)
然后3 7比,得到1 2 3 7
然后6 7比,得到1 2 3 6 7(此时第一个数组比完了,不会再有比6大的,输出第二个数组剩下的)
结束,得到1 2 3 6 7 8本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 4无用举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2018-08-07 21:22回答 6 已采纳 找到两处问题 1.t应该从l开始 2.l中间已经修改了 修改后代码如下 ``` #include #include using namespace std; int a[1
- 2018-07-27 18:59回答 1 已采纳 ``` int lo, int mid, int hi 分别是待归并的两部分数组的起始位置,第一个是lo~mid,第二个是mid+1~hi int i = lo;
- 2020-03-24 16:46回答 3 已采纳 结果没变化的原因
- 2020-12-04 06:04weixin_39959349的博客 排序有大量的应用场景,它往往是解决问题的第一步,它很基础但很重要,比如快速排序就被誉为20世纪科学和工程领域10大算法之一。排序如此有用的一个重要原因是在一个有序数组中查找一个元素比在一个无序数组中查找要...
- 2019-09-01 04:59回答 2 已采纳 ``` while (i < list1_size && j < list2_size) { if (list1[i] < list2[j]) //把j写成i了
- 2021-09-16 09:59回答 2 已采纳 你可以参考如下链接: C语言归并排序(合并排序)算法及代码 - Alex_ShineSky - 博客园 归并排序也称合并排序,其算法思想是将
- 2022-08-10 07:00回答 1 已采纳 每个记录是一个区间,可以理解成一个块,比较顺序如图中虚线隔开的部分。不知道这样你能不能理解题目代码中两城记录什么时候++
- 2024-10-23 12:20jerry_0910A的博客 将和比较 1 和 5,结果是 1 在前。比较 1 和 5,结果是 1 在前。比较 3 和 5,结果是 3 在前。比较 4 和 5,结果是 4 在前。剩下的 5、5、6、9 直接合并。(5 次比较)第一趟合并:1+1+1=31+1+1=3 次第二趟合并:3+3...
- 2022-12-26 08:42回答 3 已采纳 望采纳!点击左下方的解决即可采纳!可以参考一下我的代码 #include <stdio.h> #include <stdlib.h> // 归并两个有序子数组 void me
- 2023-04-05 01:19回答 1 已采纳 import java.util.Arrays; public class HelloWorld { public void merge_sort(int q[], int l, int r){
- 2019-10-28 09:09回答 1 已采纳 https://www.cnblogs.com/yinheyi/p/10840465.html
- 2020-12-09 06:40weixin_39687542的博客 归并排序是采用分治法的一个非常典型的应用,另一个可以采用分治法的是快速排序,归并算法比快速排序速度稍低。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路...
- 2019-09-06 08:03lyuasd的博客 例题:利用归并排序方法对数字序列:5,19,17,21,11,8,1进行排序,共需要进行( )次比较 答案:11 程序: def merge_sort(arr): if len(arr)<=1: return arr mid = len(arr)//2 #坑仔这 分组出现...
- 2023-05-23 08:04bing#^*的博客 归并排序的时间复杂度众所周知是(nlog n),并且是一个稳定的排序算法,归并排序的排序次数,随着排序的数字越多,排序次数也越大,但是对于排序的数的个数相同的情况下,排序次数是不变的,在这里我给出算是推导,此...
- 2017-03-16 08:01### 归并排序算法实现详解 #### 一、引言 归并排序是一种经典的排序算法,采用分治法的思想,将待排序数组分为若干个子序列,这些子序列是已排序的,然后再按照一定的方式合并这些子序列得到最终排序后的数组。...
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司