博客专栏  >  综合   >  数据结构与算法

数据结构与算法

软件就是结构和算法,二者是软件开发的灵魂,用什么语音不重要,重要的是算法和采用的软件结构,下面这个专栏具体说说经典的数据结构和算法。

关注
16 已关注
22篇博文
  • 图算法之bfs、dfs、prim、Dijkstra

    # 概述 在图算法中经常要执行遍历每个顶点和每条边的操作,即图搜索。许多图算法都以图搜索为基础,如2-着色问题、连通性计算基于深度优先搜寻(depth-first search, DFS),而无权最...

    2017-04-07 18:05
    747
  • 红黑树深入剖析及Java实现

    概述红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B...

    2017-02-14 22:40
    2771
  • 数据结构之二叉树

    树定义:满足以下条件的就是树: 1. 有且仅有一个特定的称为根Root的结点。 2. 当n>1时,其余结点可分为m(m>0)个互不相交的有限集,其中每个集合本身又是一个棵树,并称为根的子树。树...

    2017-02-14 21:06
    2117
  • 数据结构之图

    基本概念图(Graph):图(Graph)是一种比线性表和树更为复杂的数据结构。 图结构:是研究数据元素之间的多对多的关系。在这种结构中,任意两个元素之间可能存在关系。即结点之间的关系可以是任意的,...

    2016-12-22 22:07
    1733
  • 一起聊聊什么是P问题、NP问题、NPC问题

    概念P问题:如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题。通常NOI和NOIP不属于P类问题,我们常见到的一些信息奥赛的题目都是P问题。 NP问题:可以在多项式的...

    2016-12-22 18:13
    8709
  • 数据结构之串

    基本概念串(string)是由零个或多个字符组成的有限序列,又名叫字符串。形如s="a,b,c.."。ai(1 ≤ i ≤ n)可以是字母、数字或其他字符,i就是该字符在串中位置。串中的字符数目n称为...

    2016-12-10 18:43
    1528
  • 数据结构之线性表

    基本概念线性表(List):由零个或多个数据元素组成的有限序列。特征:1.线性表是一个序列。2.0个元素构成的线性表是空表。3.线性表中的第一个元素无前驱,最后一个元素无后继,其他元素有且只有一个前驱...

    2016-12-09 10:43
    666
  • 数据结构之队列

    概述在java5中新增加了java.util.Queue接口,用以支持队列的常见操作。Queue接口与List、Set同一级别,都是继承了Collection接口。Queue使用时要尽量避免Colle...

    2016-12-08 13:41
    604
  • 数据结构之哈希函数

    概念:哈希(hash),也叫做散列、数据摘要等,是一种常见的数据结构。哈希的表的核心概念分为哈希表和哈希函数。哈希表(hashTable)哈希表之前讲过,有需要的可以参考:点击打开哈希表哈希函数哈希函...

    2016-12-07 10:43
    1880
  • 算法笔记之排序

    最近在看《算法笔记》,如果单从算法来说,这本书真正做到了短小精悍,首先以排序入题,那么我们今天也来说说排序。排序将一堆杂乱无章的元素按照某种规则有序排列的过程就叫“排序”.排序是一种非常基础的算法,有...

    2016-11-15 20:51
    2727
  • Map排序

    Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value)。 按键排序(sort by key) jdk内...

    2016-06-13 22:10
    1380
  • 【数据结构与算法02】栈与队列

    我们知道,在数组中,若知道数据项的下标,便可立即访问该数据项,或者通过顺序搜索数据项,访问到数组中的各个数据项。但是栈和队列不同,它们的访问是受限制的,即在特定时刻只有一个数据项可以被读取或者被删除。...

    2016-04-11 22:49
    2292
  • 数据结构是哈希表(hashTable)

    哈希表也称为散列表,是根据关键字值(key value)而直接进行访问的数据结构。也就是说,它通过把关键字值映射到一个位置来访问记录,以加快查找的速度。这个映射函数称为哈希函数(也称为散列函数),映射...

    2016-06-06 21:34
    3096
  • 数据结构之数组

    一.数组的基本概念 数组可以看成是多个相同类型数据组合,对这些数据的统一管理。数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组的元素可以是任何数据类...

    2016-06-06 00:03
    2536
  • 数据结构之2-3-4树

    2-3-4树是一种阶为4的B树。它是一种自平衡的数据结构,可以在O(lgn)的时间内查找、插入和删除,这里的n是树中元素的数目。2-3-4树和红黑树是等价的,也就是每个红黑树都可以转化为一颗2-3-4...

    2016-06-05 23:47
    4063
  • 算法之插入排序

    插入排序算法介绍 排序算法是最简单的算法,也是最基本的算法。顾名思义,插入排序就是把当前待排序的元素插入到一个已经排好序的列表里面。 一个非常形象的例子就是右手抓取一张扑克牌,并把它插入左手拿着的排...

    2016-06-05 19:10
    1634
  • 算法之冒泡排序

    冒泡排序算法需要遍历几次数组。每次遍历都要比较连续相邻的元素,如果某一对相邻元素是降序,则互换它们的值,否则,保持不变。由于较小的值像“气泡”一样逐渐浮想顶部,而较大的值沉向底部,所以叫冒泡排序。 ...

    2016-06-05 13:48
    7467
  • 数据结构之链表

    一、概念 (1)数组的线性序是由数组的下标决定的,链表中的顺序是由各对象中的指针所决定的 (2)链表结点结构 node *prev; node *next; int key; (3)链表结点 nod...

    2016-06-05 13:46
    3842
  • KMP算法

    KMP为的是解决2字符串匹配问题的算法,检查一个字符串是否为另一个的子串,sub = "abc" , str = "aabcd" ,str里包含了一个sub,KMP算法可以以O(M+N)的复杂度找到子...

    2016-04-07 15:12
    673
  • 常用的排序算法和时间复杂度

    1. 数据结构部分 数据结构中常用的操作的效率表 通用数据结构 查找  插入   删除 遍历  数组 O(N) O(1) ...

    2016-05-31 17:53
    2392

大数据
1266252
ios开发大揭秘
1939023
前端
3090836
深入Android Framwork
2882346
React Native
81202670
设计模式
2632789
java
2443376
ssh框架
1436349
android开发大揭秘
98235121

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部