根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。 归并排序进行如下迭代操作:首先将原始序列看成N个只包含1个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到 ...
分类:
其他好文 时间:
2016-12-28 02:24:58
阅读次数:
256
/*crate a new array to put the elements sorted*/void MergeSort(int a[], int n){ int *TmpArray; TmpArray = (int*)malloc(n*sizeof(int)); if (TmpArray != ...
分类:
编程语言 时间:
2016-12-18 01:12:39
阅读次数:
219
这篇文章包含了插入排序,希尔排序,堆排序,归并排序和快速排序,是前几篇文章的集合。 一共包括三个文件 sort.h sort.cpp main.cpp 1.main.cpp 2.sort.h 3.sort.cpp ...
分类:
编程语言 时间:
2016-12-14 01:47:21
阅读次数:
254
uthash 是C的比较优秀的开源代码,它实现了常见的hash操作函数,例如查找、插入、删除等。该套开源代码采用宏的方式实现hash函数的相关功能,支持C语言的任意数据结构最为key值,甚至可以采用多个值作为key,无论是自定义的struct还是基本数据类型,需要注意的是不同类型的key其操作接口方 ...
分类:
其他好文 时间:
2016-10-23 09:45:01
阅读次数:
2867
#include<iostream>#include<typeinfo>#define N 100 using namespace std;void MergeSort(int *R,int low,int mid,int high){ //用分治法对R[low..high]进行二路归并排序 int ...
分类:
编程语言 时间:
2016-09-24 21:46:20
阅读次数:
175
Sort a linked list in O(n log n) time using constant space complexity. 虽然知道要用mergesort,也懂mergesort,但没有自己实现过。真正上手的时候就不回=。=。参考了discussion的思路。 思路:找到linke ...
分类:
其他好文 时间:
2016-09-11 09:01:28
阅读次数:
152
递归方式: 1 public static Object[] mergeSort(Object[] o) { 2 o = o.clone(); 3 mergeSort(o, 0, o.length - 1); 4 return o; 5 } 6 7 private static void merge ...
分类:
其他好文 时间:
2016-09-09 20:36:55
阅读次数:
166