- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我知道家庭作业问题在这里不是最受欢迎的,但我完全不知所措。我正在做一项作业,要求我们制定多种排序算法。然而,其中一个让我发疯。我在网上找不到任何例子,而且他在类里面也没有完全复习过。我们必须进行如下所示的合并排序:
void mergeSort(int * a, int s, bool n = false)
其中 a 是数组,s 是所述数组的大小,n 对于二进制归并排序为 false,对于自然归并排序为 true。问题是,我找不到什么是自然归并排序和二元归并排序。我只是找到合并排序。他们都要求更多的变量。
我只是问是否有人知道在哪里可以找到对这两种不同类型的合并排序的很好的解释。
最佳答案
我不是该主题的专家,但维基百科页面似乎是一个很好的起点 http://en.wikipedia.org/wiki/Merge_sort
它包含一个关于自然归并排序的部分和一个例子。
关于二元归并排序:
A variant named binary merge sort uses a binary insertion sort to sort groups of 32 elements, followed by a final sort using merge sort. It combines the speed of insertion sort on small data sets with the speed of merge sort on large data sets
插入排序可以在这里阅读:http://en.wikipedia.org/wiki/Insertion_sort
其中包含有关二进制插入排序的选择。
关于变量。 “自下而上归并排序”(其中自然归并排序是一个变体)的维基百科示例具有以下签名:
void BottomUpSort(A[], B[], n)
其中 A 是要排序的数组,n 是它的长度。 B 是一个工作数组,如果 a 正确阅读算法,它的长度也需要为 n。无论如何,它可以在算法的开头创建并在最后删除。
关于c++ - 二元归并排序和自然归并排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29460179/
本文实例汇总了Java各种排序算法。分享给大家供大家参考,具体如下: 1. 冒泡排序: ?
1.冒泡排序 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 算法步
前言 平时用惯了高级语言高级工具高级算法,难免对一些基础算法感到生疏。但最基础的排序算法中实则蕴含着相当丰富的优化思维,熟练运用可起到举一反三之功效。 选择排序 选择排序几乎是
我是一名优秀的程序员,十分优秀!