
数据结构&算法
xuxinrk
这个作者很懒,什么都没留下…
展开
-
快速排序法
快速排序介绍快速排序(Quick Sort)使用分治法策略。它的基本思想是:选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序流程:(1) 从数列中挑出一个基准值。(2) 将所有比基准值小的摆放在基准前面,所有...转载 2019-03-24 20:44:42 · 461 阅读 · 0 评论 -
如何判断链表有环
方法一:首先从头节点开始,依次遍历单链表的每一个节点。每遍历到一个新节点,就从头节点重新遍历新节点之前的所有节点,用新节点ID和此节点之前所有节点ID依次作比较。如果发现新节点之前的所有节点当中存在相同节点ID,则说明该节点被遍历过两次,链表有环;如果之前的所有节点当中不存在相同的节点,就继续遍历下一个新节点,继续重复刚才的操作。例如这样的链表:A->B->C->D-&...转载 2019-03-24 21:47:06 · 225 阅读 · 0 评论 -
c++中的deque
deque(包含头文件#include<deque>)由若干段连续空间串接而成,一旦有必要在deque的头部或尾端增加新的空间,便配置一段定量连续的空间,串接在deque的头部或尾端。deque的最大任务,就是在这些分段连续的空间上维护其整体连续的假象,并提供随机存取的接口。 实际上。deque内部会维护一个map(注意!不是STL中的map容器)即一小块连续...转载 2019-04-07 13:20:07 · 2572 阅读 · 0 评论 -
二叉排序树(二叉搜索树)的时间复杂度&空间复杂度
二叉排序树又称二叉查找树(二叉搜索树),它或是一棵空的二叉树,或是具有下列性质的二叉树:若它的左子树不空,则左子树上所有节点的值均小于根节点的值 若它的右子树不空,则右子树上所有节点的值均大于根节点的值 它的左右子树也都是二叉排序树如果二叉排序树是平衡的,则n个节点的二叉排序树的高度为,其查找效率为,近似于折半查找。如果二叉排序树完全不平衡,则其深度可达到n,查找效率为O(n),退化为顺...转载 2019-04-26 15:01:54 · 61498 阅读 · 0 评论