04 2015 档案

摘要:数据继续增加,麻烦很多。下面给出一个方案:void shift(int data[], int i, int length) //筛选算法{ for(int c; c= i* 2+ 1, c 0; all-= size) //减去做好的 ... 阅读全文
posted @ 2015-04-29 14:23 汇铁 阅读(690) 评论(0) 推荐(0)
摘要:小结一下:对这个问题,到目前,我们得到了两段比较好的代码:堆选择与快速选择。堆选择,是我根据维基百科/堆排序/C++代码,改写得。快速选择,为ExcelHome的知名网友香川群子所写。她并指出,该代码去掉提前退出的条件,即为快速排序。即:void SortQuick(int data[], int ... 阅读全文
posted @ 2015-04-23 09:51 汇铁 阅读(345) 评论(0) 推荐(0)
摘要:快速选择这是一种快速将数据分成两组的方法。类似快速排序算法。在ExcelHome网站讨论一亿取十万这个问题时,得到该网站知名网友“香川群子”的VB代码。核心如下:Function QuickSort2(tr, l&, u&, k&) '递归算法的快速排序过程 不解释 Dim i&, j&, r... 阅读全文
posted @ 2015-04-20 22:39 汇铁 阅读(300) 评论(0) 推荐(0)
摘要:堆处理: void shift(int data[], int i, int length) { for(int c; c= i* 2+ 1, c= 0; i--) shift(data, i, n); ... 阅读全文
posted @ 2015-04-19 17:32 汇铁 阅读(356) 评论(0) 推荐(0)
摘要:单向链表用单向链表,还更麻烦。因为,插入时,必须修改插入点的前一节点的后续值。因此,做查找时,临时维护一个前趋。也不知道有没好处。代码如下://---------------------- //单向链struct SOut... 阅读全文
posted @ 2015-04-18 15:49 汇铁 阅读(313) 评论(0) 推荐(0)
摘要:双向链表来处理:双向链表,虽顺序比较,次数多。但插入不用移动数据。不知道这两者谁占上风。还是代码来运行一下吧。代码如下:#include #include using namespace std; struct SOutTwo{ int value, next, pre;}... 阅读全文
posted @ 2015-04-17 10:07 汇铁 阅读(330) 评论(0) 推荐(0)
摘要:准备对能一次读入内存中处理的数据,取前K小,用多种方法进行。设想有:插入排序、折半查找插入排序、链排序、堆排序。顺序查找直接插入:思路:1、对全部数据,依次取值。送到一个队列。2、待判断的数据,在队列中做顺序查找。找到位置则插入。3、当队列满,且待判断的数据大于队列中最大数据,则直接放弃。另,代码中... 阅读全文
posted @ 2015-04-15 21:01 汇铁 阅读(1383) 评论(0) 推荐(0)