1.排序思路
归并排序可以用分治算法的思想来解决。
分治算法的基本思想:当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。
分治法解题步骤:
(1)分解,将要解决的问题划分成若干规模较小的同类问题;
归并排序中,为使区间划分得简单和均匀,我们采用二分法来分解。
(2)求解,当子问题划分得足够小时,用较简单的方法解决;
(3)合并,按原问题的要求,将子问题的解逐层合并构成原问题的解。
借用一张图来说明归并排序的过程:
图片出处(http://blog.csdn.net/lemon_tree12138/article/details/51517753)
2.排序算法