Merge Sort

这篇博客介绍了归并排序算法及其调用次数的计算。在给定一个整数n和调用次数k的情况下,需要找到一个n大小的排列数组,使得在排序过程中归并排序恰好被调用k次。文章通过分析指出,由于每次调用后会成对地产生新的调用,因此k必须为奇数。然后提出了一个深度优先搜索的策略来构造满足条件的数组,通过交换中点元素或整体交换两侧元素来保持两部分有序。当调用次数达到k或者区间不能再分时,返回构造的数组。
摘要由CSDN通过智能技术生成

Merge sort is a well-known sorting algorithm. The main function that sorts the elements of array a with indices from [l, r) can be implemented as follows:

  1. If the segment [l, r) is already sorted in non-descending order (that is, for any i such that l ≤ i < r - 1 a[i] ≤ a[i + 1]), then end the function call;
  2. Let ;
  3. Call mergesort(a, l, mid);
  4. Call mergesort(a, mid, r);
  5. Merge segments [l, mid) and [mid, r), making the segment [l, r) sorted in non-descending order. The merge algorithm doesn't call any other functions.

The array in this problem is 0-indexed, so to sort the wh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值