大三下每日打卡019

归并排序——分治

(1)确定分界点:mid = (l+r)/2

(2)递归排序左边和右边

(3)归并——合二为一(最难的部分)

大致过程就是取中间的分界点mid,然后先写递归,再把q[ ]分为两组队列来排,都从左边的起点开始,一个是从l开始一个是从mid+1开始,终点分别是mid和r,此时两个指针所对的哪个小,哪个出队列,出队列后原指针往后挪一个位置,再对比哪个小,最后肯定会走完一个队列,剩下的队列就直接依次输出出来就行了,这里不知道具体哪个先走完,所以用两个while循环来测一下。

posted @ 2025-03-20 08:01  软件拓荒人  阅读(11)  评论(0)    收藏  举报