题目描述:Sort a linked list inO(nlogn) time using constant space complexity.解题方案:题目要求的时间复杂度是O(nlogn),常数级空间复杂度。所以这里用了归并排序,归并排序在数组上操作比较方便,但是这里要排序的是链表。我们用到两个...
分类:
其他好文 时间:
2014-09-27 18:56:10
阅读次数:
231
#include#define MAXSIZE 20typedef int KeyType;typedef struct{ KeyType key;}RcdType;typedef struct { RcdType r[MAXSIZE+1]; int length;}Sqlist...
分类:
其他好文 时间:
2014-09-26 21:23:08
阅读次数:
189
课堂笔记:程序执行效率影响因子:输入:评估时使用最坏情况输入输入大小:考虑n渐进∞机器执行效率: 忽略两种排序算法比较插入排序n2归并排序nlgn递归技能1:评估多项式的时间级数θ技能2:构建算法的循环不定式,并证明其正确性引申思考归并排序通过哪个关键步骤/方法使效率高于插入排序编程训练归并排(与逆...
分类:
其他好文 时间:
2014-09-26 20:30:38
阅读次数:
132
胜者树和败者树都是完全二叉树,是树形选择排序的一种变型。每个叶子结点相当于一个选手,每个中间结点相当于一场比赛,每一层相当于一轮比赛。
不同的是,胜者树的中间结点记录的是胜者的标号;而败者树的中间结点记录的败者的标号。
胜者树与败者树可以在log(n)的时间内找到最值。任何一个叶子结点的值改变后,利用中间结点的信息,还是能够快速地找到最值。在k路归并排序中经常用到。...
分类:
其他好文 时间:
2014-09-25 23:56:08
阅读次数:
279
“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。
以n个元素的数组为例:可以看作为n个有序的子表,每个子表的长度为1,然后两两合并,得到n/2个长度为2或1的有序子表。然后再两两合并......如此重复,直到合并为一个长度为n的有序表为止。...
分类:
其他好文 时间:
2014-09-25 19:34:57
阅读次数:
119
为方便自己看懂,所以用的语言比较通俗。 排序算法稳定性解释:如果a=b,a原来在b前面,排序算法后a也在b前面,就是稳定排序。 归并排序:稳定排序,时间复杂度为O(NlogN),将若干有序的数组合并成一个有序的数组...
分类:
其他好文 时间:
2014-09-25 17:30:07
阅读次数:
267
1.归并排序的思想
2.归并排序的具体实现
3.归并排序的改进:
(1)当递归到一定程度,数组已经足够小时(length
(2)当较小的那部分数值的最大值>=较大部分的最小值时,则直接返回,不对这两部分数组进行合并。
4.归并排序的变形—buttom up merge sort
基本思路:
(1)设length=2。依次遍历数组...
分类:
其他好文 时间:
2014-09-23 16:32:54
阅读次数:
149
DATA: itab TYPE TABLE OF sy-ucomm.APPEND 'DELE' TO itab.APPEND 'PICK' TO itab.SET PF-STATUS 'STA3' EXCLUDING itab.就是把screen status设置成standard, 并排除rt_e...
分类:
其他好文 时间:
2014-09-23 14:38:34
阅读次数:
326
三色旗问题
1 问题由来
三色旗的问题最早由E.W.Dijkstra所提出,他所使用的用语为DutchNation Flag(Dijkstra为荷兰人),而多数的作者则使用Three-Color Flag来称之。
假设有一条绳子,上面有红、白、蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,您希望将之分类,并排列为蓝、白、红的顺序,要如何移动次数才会最少...
分类:
其他好文 时间:
2014-09-23 05:20:14
阅读次数:
245
今天我主要学习基于分治思想的归并排序算法,这是分治法的典型应用。废话不多说,下面直切正题。概述:将两个有序数组归并成一个更大的有序数组,我们称之为归并,人们根据这一操作发明了一种简单的递归排序算法:归并排序。归并排序最吸引人的是它能够保证任意长度为N的数组排序所需的时间和NlogN成正比;它的主要缺...
分类:
其他好文 时间:
2014-09-22 21:42:33
阅读次数:
173