今天数据结构的考试有这个题,做了好久,下来后,我好好地在网上查了一下,并结合我自己的理解,总结出来了一个比较好理解的方法。这个方法可以说做起这样的题又快又准。(概括为一个口诀:先序放中间,中序分两边) 基本思想就是递归:1.取出先序的第一个节点。(先序中的节点为根节点)2.用第一个节点可以将中序分....
分类:
其他好文 时间:
2014-06-11 13:11:53
阅读次数:
316
直接插入排序(Straight Insertion
Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程
中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排...
分类:
其他好文 时间:
2014-06-11 09:49:14
阅读次数:
263
动态规划的基本思想:将一个问题分解为子问题递归求解,且将中间结果保存以避免反复计算。通经常使用来求最优解,且最优解的局部也是最优的。求解过程产生多个决策序列,下一步总是依赖上一步的结果,自底向上的求解。动态规划算法可分解成从先到后的4个步骤:1.
描写叙述一个最优解的结构,寻找子问题,对问题进行划分...
分类:
其他好文 时间:
2014-06-10 15:00:23
阅读次数:
217
插入排序(上)
基本思想:每次将一个待排序的的元素,按其关键字大小插入到已经排好序的子表的适当位置,直到全部元素插完为止。直接插入排序简写排序思路:
假设待排序的元素存放在R[0.....n-1]中,在排序过程中,将R划分为两个区间,分别为R[0.....i-1]和R[i....n-1](刚开始时....
分类:
其他好文 时间:
2014-06-08 20:50:06
阅读次数:
245
一、概念
1、什么是CDN?
CDN的全拼是(Content Delivery Network),即内容分发网络。其基本思想是尽可能避开互联网上有可能影响数据传输速度和稳定性瓶颈的环节,使内容传输的更快、更稳定。通过在网络各处防止节点服务器所构成的在现有的互联网基础之上的一层只能虚拟网络,CDN系统能够实时地根据网络流量和各个节点的连接、负载情况以及到用户的距离和响应时间等综合信息将用户的请求...
分类:
其他好文 时间:
2014-06-08 16:20:30
阅读次数:
219
很多时候排序是为了对数据进行归类,比如对城市进行排序,对员工的职业进行排序。这种排序的特点就是重复的值特别多。
如果使用普通的快排对这些数据进行排序,会造成N^2复杂度,但是归并排序和三路快排就没有这样的问题。
三路快排
三路快排的基本思想就是,在对数据进行分区的时候分成左中右三个部分,中间都是相同的值,左侧小于中间,右侧大于中间。
...
分类:
其他好文 时间:
2014-06-08 15:29:45
阅读次数:
197
问题
给定N个元素的数组,求第k大的数。
特例
当k=0时,就是求最大值,当k=N-1时,就是求最小值。
应用
顺序统计
求top N排行榜
基本思想
使用快速排序方法中的分区思想,使得a[k]左侧没有更小的数,右侧没有更大的数
性能
快速选择算法的复杂度...
分类:
其他好文 时间:
2014-06-08 09:58:08
阅读次数:
211
合并排序算法是用分治策略实现对N个元素进行排序的算法。其基本思想是:将待排序元素分成大小大致相同 的两个子集合,分别
对两个子集合进行排序,最终将排好序的子集合合并成所要求的排好序的集合。重点:1.分治的实现2.合并的实现分治,就是把整个集合的元素一直除2化分,一直化为到没有两个元素开始合并。图:分...
分类:
其他好文 时间:
2014-06-08 02:06:21
阅读次数:
289
本节介绍的是快速合并的优化算法。基本思想就是在每个节点上增加重量的概念,每次操作的时候将重量小的部件挂在重量大的部件之下。这样就避免了树形结构太高的问题。
下图展示了优化前后的树形结构深度的对比。
证明
可以证明每个节点的深度最大为lgN。
因为每次合并的时候较小的部件要放在较大的部件之下,所以如果要增...
分类:
其他好文 时间:
2014-06-02 19:00:51
阅读次数:
334
9.4选择类排序法选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。我们主要介绍简单选择排序、树型选择排序和堆排序。简单选择排序简单选择排序的基本思想:第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最...
分类:
其他好文 时间:
2014-06-02 01:42:56
阅读次数:
256