归并排序问题
问题描述:给定一个无序的整数数组 arr,将其按照升序排列。
基本思路:
- 分解:把待排序的数组
arr从中间分成两个子数组left和right, 递归地对left和right两个子数组分别进行归并排序,即继续分解这两个子数组,直到子数组只包含一个元素(因为一个元素的数组天然是有序的)。 - 合并:当两个子数组都已经排好序后,将这两个有序的子数组合并成一个新的有序数组。通过比较两个子数组的元素,依次将较小的元素放入结果数组中,直到其中一个子数组的元素全部被放入结果数组,然后将另一个子数组中剩余的元素直接追加到结果数组末尾 。