
数据结构和算法
exchange666
这个作者很懒,什么都没留下…
展开
-
二分查找-以及变体
二分查找时间复杂度为O(logn),只适合在有序数数据中查找,其随机访问的特性决定了其底层的数据结构只能为数组。 最简单(无数据重复)的代码实现如下: int binsearch(int array[],int len, int value) { int begin=0,end=len-1; int mid=begin+(end-begin)>>1; while(begin<=e...原创 2019-12-10 19:25:18 · 216 阅读 · 0 评论 -
排序
冒泡排序 void Bubble_Sort(int array[],int N) { for(int p=N-1;p>0;p--) { int flag=0; for(int i=0;i<p;i++) { if(array[i]>array[i+1]) { ...原创 2018-08-12 14:08:10 · 136 阅读 · 0 评论 -
堆
一、堆的出现是解决什么问题 在操作系统的进程调度中,采用了优先级队列的方式。那究竟采用何种结构来存储?数组,链表,二叉搜索树,仔细分析核心需求:从队列中删除最大值,任意队列值的插入,核心的核心是删除操作,也即从队列中选取一个优先级最高的线程来运行。上述三种结构上述两种操作至少一种操作是o(n),虽然二叉搜索树删除和插入的时间复杂度是o(logn),但是当删除最大值时,它删除的都是最右边的结点,风...原创 2018-07-23 22:54:18 · 202 阅读 · 0 评论 -
二叉树
一、关于二叉树的重要知识点 1、任意节点的层数为其父节点层数+1 2、任意树都可以用儿子兄弟表示法表示成一颗二叉树 3、可以用数组存放二叉树节点,一般用在完全二叉树中,而且插入删除操作不多 4、完全二叉树任意结点的左(右)孩子为2*i(2*i+1,i=1.....) 5、知道某个结点编号i,那么他的父结点编号为i/2向下取整。 二、二叉树的遍历方式 先序、中序、后序、层序。其中先中后...原创 2018-08-22 23:14:04 · 129 阅读 · 0 评论 -
图
一、图的基本概念 图是有顶点集合和顶点关系集合组成的一种数据结构。 二、图的存储结构 1、邻接矩阵。应用在稠密图中。 2、邻接表。应用在稀疏图中。 3、十字链表。 三、图的遍历方式。多维度线性化的过程 1、DFS。深度优先搜索,与树的先序遍历类似 void DFS(vertex v) { visited[v]=true; while(v的每个邻接点w) { ...原创 2018-08-29 21:32:01 · 120 阅读 · 0 评论 -
算法的三条金句
1、解决问题的效率和数据的组织形式有关 2、解决问题的时间效率和空间效率有关 3、解决问题方法的效率和算法的精妙程度有关原创 2019-02-28 23:16:45 · 313 阅读 · 0 评论