java – 了解合并排序的工作原理
发布时间:2020-12-15 01:03:01 所属栏目:Java 来源:网络整理
导读:private void merge(int[] array,int[] aux,int low,int mid,int hi) { int i = low,j = mid + 1,k; for (k = low; k 代码有效,但我很难理解它. 我理解的目的 if (hi 但我不知道返回执行后会发生什么. 我不明白为什么合并函数中的最后一个存在.如果算法分裂
代码有效,但我很难理解它. >我理解的目的
但我不知道返回执行后会发生什么. 最佳答案
>在排序方法中,问题分为较小的子问题.当要排序的范围只有一个或零宽时,无需执行任何操作,并且可以关闭该方法.这是因为单独的一个元素按定义排序.它是递归like m0skit0 said的停止条件.
>此算法中不会交换元素.该方法尝试合并两个排序的数组.有两个指数i和j.当我到达中间时,右侧部分中的所有元素都将添加到结果数组中.如果j到达右边界,则左侧部分的所有元素都将添加到结果中.这是前两个案例. 现在在最后两种情况下,算法试图找出由i和j索引的当前元素中的哪一个是最小值并将其添加到结果数组中.在第三种情况下,j处的元素较小并添加到结果数组中.在第四种情况下,选择i处的元素. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |