
算法和数据结构
文章平均质量分 53
坚持就有希望
他强任他强,我是路人王!
展开
-
排序算法思想总结
对于一名码农来说,熟悉数据结构和算法是最基本的,总结了一下各种排序算法的思想:例如:一个待排序数列a = [1 4 7 2 5 8 3 6 9],要求从小到大排序一、冒泡排序对待排序数列从最后一位元素开始依次比较大小,一次循环比较n-1次之后即可将最小值放在首位,即a[n-1]与a[n-2],a[n-2]与a[n-3]...a[1]与a[0],如果a[n-1]小于a[n-2]则原创 2017-04-28 14:11:17 · 1016 阅读 · 0 评论 -
散列表原理总结
散列表也称哈希表,采用素组加链表或者数组的结构,基本原理是将关键字通过散列函数转换得到数组下标进行元素存储。在通过散列函数有可能会得到相同下标的情况,叫做哈希冲突,解决冲突的方法包括分离链接法和探测散列法。分离链接法是将每个数组元素存储的是链表的头指针,得到的相同下标的关键字依次存储。探测散列法包括线性探测法,平方探测法,双散列,再散列等,以线性探测法为例进行分析,探测的方法是采用h(x)原创 2017-04-28 16:40:35 · 455 阅读 · 0 评论 -
最短路径算法(图论)
前几天看了一下最短路径算法,现在做一下简单的流程总结:有向图如下所示:步骤如下:1、准备两个集合A,B分别表示已经遍历的节点和未遍历的节点,从v1节点开始进行搜索,那么A = [v1(0)], B = [v4(1),v2(2),v3(∞),v7(∞),v6(∞),v5(∞)]2、查找集合B中路径最短节点,即v4,重新更新集合得到A = [v1(0), v4(1)], B = [原创 2017-05-02 18:23:36 · 736 阅读 · 0 评论 -
普通树的广度搜索和深度搜索java实现
数据结构中的树搜索方式可以分为广搜和深搜,顾名思义,广搜就是一层一层的搜索,深搜就是先搜索左子树从左节点搜索一直到叶子节点,然后搜索右子树。下面用java实现广搜和深搜:广搜采用队列的结构,java API提供了双端队列的类ArrayDequepublic static Tree find(int value, Tree tree){Deque deque = new ArrayD原创 2017-04-20 18:57:25 · 673 阅读 · 0 评论 -
三角形最小路径和c++实现
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。...原创 2018-09-29 12:48:52 · 821 阅读 · 0 评论