数据结构与算法
文章平均质量分 72
时光荏苒心依旧
记录自己学习的心得,每天进步一点点
展开
-
八大排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键转载 2017-04-18 11:05:09 · 240 阅读 · 0 评论 -
B-tree/B+tree/B*tree
B~树 1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树 (Red-Black Tree ),B-tree/B+-tree/ B*-tree(B~Tree)。前三者是典型的二叉查找树结构,其查找的时间复杂度O(log2N)与树的深度相关,那么降低树的深转载 2017-05-02 15:14:51 · 236 阅读 · 0 评论 -
最小生成树-Prim算法和Kruskal算法
Prim算法1.概览普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(英语:Vojtěch Jarník)发现;并在1957年由美国计算机科学家罗伯特·普转载 2017-04-25 14:39:17 · 527 阅读 · 0 评论 -
最短路径—Dijkstra算法和Floyd算法
注意:以下代码 只是描述思路,没有测试过!! Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在转载 2017-04-25 14:40:37 · 407 阅读 · 0 评论 -
树的左旋与右旋
下图所示操作称为对结点Q的右旋,对结点P的左旋。二者互为逆操作。简单讲,右旋——自己变为左孩子的右孩子;左旋——自己变为右孩子的左孩子。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2转载 2017-04-25 21:29:32 · 594 阅读 · 0 评论 -
教你彻底学会动态规划——入门篇
动态规划相信大家都知道,动态规划算法也是新手在刚接触算法设计时很苦恼的问题,有时候觉得难以理解,但是真正理解之后,就会觉得动态规划其实并没有想象中那么难。网上也有很多关于讲解动态规划的文章,大多都是叙述概念,讲解原理,让人觉得晦涩难懂,即使一时间看懂了,发现当自己做题的时候又会觉得无所适从。我觉得,理解算法最重要的还是在于练习,只有通过自己练习,才可以更快地提升。话不多说,接下来,下面我就通过一个转载 2017-07-27 22:22:12 · 452 阅读 · 0 评论 -
动态规划DP问题分类和经典题型
解题关键:理解结构特征,抽象出状态,写成状态转移方程。动态规划理念:1.最优化原理 1951年美国数学家R.Bellman等人,根据一类多阶段问题的特点,把多阶段决策问题变换为一系列互相联系的单阶段问题,然后逐个加以解决。一些静态模型,只要人为地引进“时间”因素,分成时段,就可以转化成多阶段的动态模型,用动态规划方法去处理。与此同时,他提出了解决这类问题的“转载 2017-07-28 10:06:47 · 1593 阅读 · 0 评论 -
八皇后问题(回溯法&枚举法)
作者 : 卿笃军本文讨论了八皇后问题的三种解决方案:一、枚举法二、回溯法(递归版)三、回溯法(非递归版)本来这些代码是以前编写好的,没有发表,由于最近又学习到了八皇后问题,自己整理了一下发表了出来!首先、说明一下何为八皇后问题,我也不去谷歌了,直接简单的说明一下:八皇后问题,就是在一个8*8的平面棋盘上,要求你摆放8个棋子,要求:这8个棋子不能有2个在同转载 2017-07-28 11:07:35 · 3249 阅读 · 1 评论 -
回溯算法解八皇后问题(java版)
八皇后问题是学习回溯算法时不得不提的一个问题,用回溯算法解决该问题逻辑比较简单。 下面用java版的回溯算法来解决八皇后问题。 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 思路转载 2017-07-28 15:12:31 · 665 阅读 · 0 评论