博客专栏  >  编程语言   >  数据结构与算法

数据结构与算法

数据结构包括:线性表、链表、栈、队列、树; 算法主要是以上数据结构的基本操作,以及排序查找等问题。这些都是在笔试面试中常考的问题。 最后会介绍一些经典算法模式,比如递归、分治、动态规划等。

关注
24 已关注
23篇博文
  • 平衡树(AVL)详解

    1. 为什么平衡树? 在二叉搜索树(BST,Binary Search Tree)中提到,BST树可能会退化成一个链表(整棵树中只有左子树,或者只有右子树),这将大大影响二叉树的性能。 前苏联科学...

    2013-10-07 19:30
    1537
  • 图(Graph)——最小生成树、最短路径、Kruskal、Dijkstra、Floyd

    4. 最小生成树 4.1 生成树 (1)定义:所有顶点均由边连接在一起,但不存在回路的图叫该图的生成树 (2)深度优先生成树与广度优先生成树 (3)     一个图可以有许多棵不同的生成树     所...

    2013-09-21 19:50
    12228
  • 图(Graph)——基本概念、存储、遍历

    1. 图的基本概念 图(Graph):G = ( V,E ) V(G):顶点 E(G):边 (1)边: (2)权:与图的边或弧相关的个数 (3)子图:如果图G(V,E)和图G‘(V’,E‘),满足:V...

    2013-09-21 09:36
    2186
  • 快速排序的时间复杂度nlogn是如何推导的??

    本文以快速排序为例,推导了快排的时间复杂度nlogn是如何得来的,其它算法与其类似。 对数据Data = { x1, x2... xn }: T(n)是QuickSort(n)消耗的时间; P(...

    2013-07-16 14:31
    5484
  • 快速排序算法原理与实现

    摘要:本文描述了快速排序的算法原理,给出了算法的逐步排序过程以及算法的实现。最后对算法的性能进行了分析。 1. 问题描述 输入:n个数的序列。 输出:原序列的一个重排;,使得a1*<=a2*<=a3...

    2013-07-13 21:48
    2063
  • 希尔排序算法原理与实现

    本文描述了希尔排序的算法原理,并且分析了算法的性能与选取的步长直接相关。 最后给出了算法的C++实现程序。

    2013-07-12 18:15
    1870
  • 插入排序算法原理与实现

    摘要:本文描述了插入排序的算法原理,给出了算法的逐步排序过程以及算法的实现。最后对算法的性能进行了分析。 1. 问题描述 输入:n个数的序列。 输出:原序列的一个重排;,使得a1*<=a2*<=a3...

    2013-07-12 14:00
    1660
  • 选择排序算法原理与实现

    摘要:本文描述了选择排序的算法原理,给出了算法的逐步排序过程以及算法的实现。最后对算法的性能进行了分析。 1. 问题描述 输入:n个数的序列。 输出:原序列的一个重排;,使得a1*<=a2*<=a3*...

    2013-07-11 21:24
    1342
  • 冒泡排序算法原理与实现

    摘要:本文描述了冒泡排序的算法原理,给出了算法的逐步排序过程以及算法的实现。最后对算法的性能进行了分析。 1. 问题描述 把数据列Data = {x1, x2, x3, ....,xn},按照非递减顺...

    2013-07-11 21:04
    3966
  • 排序算法理论与总结

    1. 前言 排序和查找是计算机科学中非常重要的一个课题,也是处理事务时常遇到的问题。可以说排序和查找是程序员必须掌握的基础知识。 当前排序算法所要处理的问题特点: (1)数据量大 (2)数据分布不集中...

    2013-07-11 16:00
    1144
  • 树——(5)二叉搜索树

    1. 定义 你可以理解为折半查找以二叉树形式的表象。 2. 操作 2.1 查找 2.2 插入 2.3 删除 3. 结构 3.1 Tree Node lchild data...

    2013-07-04 17:44
    926
  • 树——(4)线索二叉树

    1. 定义 1.1 起源 对于n个节点的二叉树,会有多少个空指针域呢?     Key: n+1个 对于n+1个NULL指针能不能够很好的利用起来呢?? 1.2 线索二叉树 利用二叉链表中的空指针域...

    2013-07-04 15:52
    906
  • 树——(3)二叉树的遍历VRL,RVL,RLV

    摘要:本文描述和实现了二叉树的遍历方法,包括:层次遍历, 先序遍历(VRL),中序遍历(RVL),后序遍历(RLV)。

    2013-07-04 12:47
    1094
  • 树——(2)树的存储:数组,链表

    摘要:本文以二叉树树为例,描述树的两种存储方式——数组和链表,最后给出了二叉树的链式结构结点的详细实现。 1. 数组 1.1 普通树 二叉树中各个节点的关系: 结点编号 1 2 3 ...

    2013-07-04 10:43
    934
  • 树——(1)综述:二叉树,线索二叉树,二叉搜索树,B-/B+树,AVL树,红黑树

    tree 1. 定义 树是n(n>=0)个结点的有限集。在任意一棵非空树中:     (1)有且仅有一个特定的称为根的结点;    (2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1...

    2013-06-27 17:56
    1711
  • 跳表(Skip List)的介绍以及查找插入删除等操作

    什么是跳表?要说清楚这个问题,我们就要先从普通的有序链表说起。一个普通有序列表的结构如下: 我们可以看到,上图所示的链表按照由小到大的顺序排列(-1表示最小值,1表示最大值,这是本文的一个约定),如...

    2013-09-25 14:43
    1057
  • list反转

    1. 问题描述 已知1个List: 1->2->3->4->5; 要求把List反转变为:5->4->3->2->1。 2. 问题分析 问题很简单,新创建一个list: (1)从List...

    2013-06-08 17:16
    963
  • 线性表——2. 链表

    1. 定义 链表就是每一个节点包含2部分:数据域+指针域(指向其它节点) 链表根据其指针域的不同可以分为多个种类。 本文只涉及单链表的操作,双向链表的操作与其类似。跳表的具体内容以后再说吧。 1.1...

    2013-09-25 10:40
    1240
  • 归并2个数组中的元素

    1. 问题描述 已知2个List:LA,LB中的数据按照非递减排列;要求把LA,LB中的合并成为一个List,其中数据也按照飞递减排列(包含重复数据)。 2. 问题分析        /  ...

    2013-06-06 13:59
    762
  • 仿C++ STL vector

    通过对C++STL vector的分析,自己写了一个简单的Vector,作为学习用。 1. Vector的特点: vector也就是顺序列表,是用类表示一维数组。 (1)随机存取 (2)在中间插...

    2013-06-15 10:25
    1120

Windows C/C++/C# 编程
1306356562
FFmpeg
1353620259
经典算法研究
323266570
微软面试100题系列
183177103
Java开发进阶
663045989
img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部