【经典排序算法】归并排序(动图演示 + C 语言代码实现)

【经典排序算法】归并排序(动图演示 + C 语言代码实现)

  ‍ 【经典排序算法】十大经典排序算法汇总篇

文章目录

  • 【经典排序算法】归并排序(动图演示 + C 语言代码实现)
    • 1、动图演示
    • 2、排序思想
    • 3、时间/空间复杂度
    • 4、代码实现 (C语言)


1、动图演示

【经典排序算法】归并排序(动图演示 + C 语言代码实现)_第1张图片


2、排序思想

  基本思想: 把一个区间看成平均切割的两个小区间,假如左右两个小区间各自有序,左右两个小区间不一定有序,所以分治左右两个小区间直到 size == 0 || size == 1(有序), 合并两个有序数组。

  (1) 平均分割区间
  (2) 分支处理左右两个小区间 直到 size == 0 || size == 1
  (3) 合并左右两个有序数组

  先对区间进行均分,均分成左右两半侧,递归排左半侧,递归排右半侧,将左右两半侧归并起来。归并是指将两个有序区间合并成一个有序区间。


3、时间/空间复杂度

  时间复杂度: O ( n log ⁡ n ) O(n\log_n) O(nlog

你可能感兴趣的:(算法,桶排序,归并排序,选择排序,希尔排序,堆排序)