我目前正在研究排序算法并找到了合并插入排序。我几乎找不到任何东西,但只有几篇论文和书籍参考。所以这个算法是由 Lester Ford, Jr. 和 Selmer Johnson 发现的。这里有部分描述:http : //www2.warwick.ac.uk/fac/sci/dcs/teaching/material/cs341/FJ.pdf
我现在的问题是了解插入部分的工作原理,以及 1、3、5、11 的编号顺序,在如何插入的解释中提到。看着好眼熟,就是想不起来是什么了。
到目前为止,我所拥有的代码是这样的:
//pointer to array, array size, element size, compare function pointer
void sort(void *data, size_t n, size_t s, int (*fcomp)(void*, void*))
{
if(!data) return;
if(n < 2 || s == 0) return;
size_t i = 0, j = 0, k = 0, l = 0, r = 0, m = 0;
void *be = malloc((n/2)*s); //elements greater in pair comparison
void *le = malloc((n/2 + n%2)*s);//elements …Run Code Online (Sandbox Code Playgroud)