数据结构和算法
西湖之恋
这个作者很懒,什么都没留下…
展开
-
数据结构-内部排序
1.插入排序 直接插入排序,当关键字已经有序时,需要比较n-1次,不需要移动。平均情况下,时间复杂度为O(n^2)。 折半插入排序,可以减少比较次数,但不能减少移动次数;2-路插入排序,需要n个记录的辅助空间,可以一定程度的减少移动次数。 希尔排序的基本思想是先将整个待排记录序列分割成若干子序列分别进行直接插入排序,待整个序列“基本有序”时,再对全体记录进行一次直接插入排序。原创 2015-07-26 16:56:16 · 602 阅读 · 0 评论 -
数据结构-图
1.最小生成树 prim算法:一开始集合U只有一个顶点u0,每次从U和V-U之间选一条代价最小的边u0v0,将v0并入U,直到U=V。设图中有n个顶点,每次得一个顶点,且每次得顶点都要求代价最小的边,所以时间复杂度为O(n^2)。与边数无关,因此适合求边稠密的图的最小生成树。 kruskal算法:每次选择代价最小的边,同时要求边的两个顶点落在不同的连通分量上。在选取最小代价的边时,至多对e条边原创 2015-07-15 09:26:44 · 304 阅读 · 0 评论 -
数据结构-查找
1.静态查找表(顺序查找、折半查找、插值查找、静态最优查找树、静态次优查找树、分块查找) 插值查找适合关键字均匀分布的有序表。 如果有序表中各记录的查找概率不等,则使查找性能达最佳的判定树是其带权路径长度之和取最小值的二叉树,即静态最优查找树。构造静态最优查找树的时间代价较高,一般以次优查找树代替。构造次优查找树的方法是,取第i个节点作为根节点,使得左右子树的权值差最小。然后递归进行。原创 2015-07-26 16:06:11 · 339 阅读 · 0 评论 -
数据结构-外部排序
外部排序分为两个独立的阶段。首先,将含有n个记录的文件分为若干长度为l的子文件(归并段),依次读入内存并用内部排序方法进行排序,将排序后的子文件重新写入外存。然后对这些归并段进行逐趟归并。 提高外排的效率应主要着眼于外存信息的读写次数,而这与归并的趟数成正比。对m个初始归并段进行k路平衡归并时,m越小或k越大,便能减少趟数。 当k越大,归并时,需要的比较次数就越多,可以利用败者树减少比原创 2015-07-26 17:13:47 · 475 阅读 · 0 评论