![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
﹋百毒不侵
这个作者很懒,什么都没留下…
展开
-
初识
图有一个或多个集合,每个集合都是非空有限集合。而图有分为有向图和无向图,基本概念有序对通常用“<v1,v2>”表示,有向边也称为弧,起点称之为弧尾,重点称弧头,故<v1,v2>和<v2,v1>是不同的有向边。无向边通常用小括号表示,如(v1,v2),其中v1,v2没有顺序。在无向图中若每个顶点都与除他外任何一个顶点有边原创 2018-11-12 23:00:38 · 376 阅读 · 0 评论 -
图的
图的遍历图的遍历就是从图中的一个顶点出发,对每个顶点访问,且只访问一次。与树的遍历不同的是,每个顶点都有可能存在弧或边存在从一个顶点出发,经过其他顶点后,又回到该顶点。因此需要设置一个标志量确定是否访问过。对于连通图来说,只需要一个起点就可以遍历全图,而对于非联通图来说则需要多个起点才能遍历。而图的遍历又分为两种:深度优先搜索和广度优先搜索。1.深度优先搜索即为对图的遍历尽可能先纵向访问。...原创 2018-11-14 09:44:23 · 135 阅读 · 0 评论 -
贪心法
基本思想贪心法是从问题的某一个初始解出发,在每一个阶段都根据贪心算法来作出当前的最有决策,即可能快的求最优解。当达到某一步无法进行,算法终止。即通过局部的最优解,达到全局的最优解。注意贪心算法是根据策略逐步构造问题的解。如果选择贪心策略不同,得到的算法就不同,因此,该算法的关键在于贪心策略的选择。贪心法具有高效性和不稳定性,因为可以迅速的获得一个解,但解却不一定是最优解,也可能是最优解的近...原创 2018-11-28 21:43:26 · 437 阅读 · 0 评论 -
分治法
分治法的集将一个大规模的问题分解文多个规模较小的子问题。而且这些子问题相互独立且与原问题相同。通过将各个子问题合并得到源问题的解。Divide_and_Conquer (p){ if (|p|=n0) Adboc(p): divide p into smaller subinstances p1,p2,p3,p4...pk; for (i = 1;i<=k;i++) yi=Di...原创 2018-11-27 21:19:26 · 143 阅读 · 0 评论 -
二分搜索
二分法搜索是运用分治法的典型案例。给定已安排好的n个元素a[n-1],现在要在这n个元素中找出一个特定元素k。二分法由于才用分治,时间复杂度为O(log n) 。二分搜索的基本思想即设置三个变量left , right , middle 他们分别指向上界,下界, 和中间位置。首先将待查的k的值与有序表中间为之元素比较,若相等即完成,若a[middle]>k,向左查找,若a[middle]...原创 2018-11-27 21:43:40 · 155 阅读 · 0 评论 -
合并排序
合并排序是通过分治法对n个元素的排序的算法。当n=1时终止排序。否则向排序元素分为大小相同的两个子集,分别对两个子集进行排序。最终将排过序的子集进行合并。void MergeSort (Type a[],int left ,int right ){ if (left ,right ) { int i = (left + right )/2; MergeSort (a,left ,i...原创 2018-11-27 22:29:02 · 262 阅读 · 0 评论