归并排序算法Java
基本思想
归并排序就是递归得将原始数组递归对半分隔,直到不能再分(只剩下一个元素)后,开始从最小的数组向上归并排序。
将一个数组拆分为两个,从中间点拆开,通过递归操作来实现一层一层拆分。从左右数组中选择小的元素放入到临时空间,并移动下标到下一位置。重复步骤2直到某一下标达到尾部。将另一序列剩下的所有元素依次放入临时空间。将临时空间的数据依次放入原数据数组。
图示
分解的时候我们可以使用递归的方式进行
首先我们可以先定义三个变量,
数组的头部位置可以定义为 low,数组的尾部可以定义为high
因为每次分解都是要折半,所以我们可以定义数组的中间是 mid
每一次递归,都是将原来的mid当成新的high,一直到low = high的时候我们就已经可以说明我们将一个数据分离了出来
动态图片(来自网络)
代码
public class ShellSort {
public static void main(String[] args) {
int a[
归并排序算法Java最先出现在Python成神之路。
共有 0 条评论