
数据结构和算法
Hyo_yew
Stay hungry ,Stay foolish.
展开
-
基础篇之常用的C++参数传递的三种方式
第一步:两个概念先必须搞懂:(来自百科)实参,actual parameters,全称为"实际参数"是在调用时传递给函数的参数,即传递给被调用函数的值。实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参下面开始介绍::传值一共分为三种:传值,传地址,引用做形参1.传值方式(最简单常用也最容易理解的一种)原创 2018-01-13 14:13:21 · 1376 阅读 · 0 评论 -
常见的查找算法
常见的查找算法顺序查找( O(n) ):当数据量很大的时候,不适合使用顺序查找法。二分查找(O(log 2 .n)):二分法必须事先经过排序,且数据量必须能直接在内存中执行: 此方法适合用于不需要增删的静态数据插值查找法(二分查找的改版)按照数据位置的分布,利用公式预测数据的所在位置,再以二分法的方式渐渐逼近。此算法的时间复杂度取决于数据的分布状况平均而言由于O(log2(n)),一般而言,插值查...原创 2018-04-21 16:26:04 · 247 阅读 · 0 评论 -
牛课网数据结构目录
第一章复杂度估算和排序算法(上)1)认识时间复杂度和空间复杂度2)认识对数器3)冒泡排序4)选择排序5)插入排序6)如何分析递归过程的时间复杂度7)归并排序8)小和问题第二章复杂度估算和排序算法(下)1)荷兰国旗问题2)随机快速排序3)堆结构与堆排序4)认识排序算法的稳定性5)认识比较器6)桶排序7)计数排序8)基数排序9)数组排序后的最大差值问题10)排序算法在工程中的应用第三章栈、队列、链表、...原创 2018-04-19 18:43:38 · 257 阅读 · 0 评论 -
递归和迭代的区别
原博链接:https://blog.youkuaiyun.com/swliao/article/details/5337896递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合.使用递归要注意的有两点:1...转载 2018-04-19 17:29:04 · 166 阅读 · 0 评论 -
数据结构之栈和队列
栈和队列栈是一种数据结构,它代表只能在某一端进行插入,删除的特殊线性表,通常只在尾部进行插入删除操作。对于栈而言,允许进行插入,删除操作的一端别称为栈顶top,另一端被称为栈底bottom栈是一种后进先出的线性表。栈的作为一种被限制的线性表,通常不会提供如下常用操作 :》获取指定索引处的元素》按值查找数据元素的位置》向指定索引处插入数据元素》删除指定索引处的数据元素即栈不应该提供从中间位置访问元素...原创 2018-04-19 12:07:57 · 331 阅读 · 0 评论 -
数据结构之树与二叉树
树与二叉树树是一种非常常用的数据结构,尤其二叉树的应用更是广泛,哈夫曼树及哈夫曼编码就是二叉树的重要用途,排序二叉树,平衡二叉树,红黑树在实际编程中都有极其广泛的用途,例如,Java集合框架的TreeMap本质上就是红黑树。将介绍:》树的三种存储结构:父节点表示法,子节点链表示法,链表存储》二叉树二叉树的各种便利方式,以及三种优先遍历,和广度优先遍历》哈夫曼树,排序二叉树,和红黑树"红黑树”,它一...原创 2018-04-15 11:42:33 · 275 阅读 · 0 评论 -
数据结构之常用的内部排序
写在前面对于一个排序算法来说,一般从如下三个方面来衡量算法的优劣:》时间复杂度:主要是分析关键字的比较次数和记录的移动次数》空间复杂度:分析排序算法需要多少辅助内存》稳定性:若两个记录A和B的关键字相等,但排序后A,B的先后次序保持不变,则称这种排序算法是稳定的;反之就是不稳定的。排序分为内部和外部排序的依据是:如果整个排序过程不需要借助于外部存储器,所有排序操作都放在内存中完成,则为内部排序常用...原创 2018-04-15 11:36:31 · 390 阅读 · 0 评论 -
数据结构之线性表
线性表实现分析线性表的顺序和链式各有优势空间性能:顺序列表:顺序表的存储空间是静态分布的,因此需要一个长度固定的数组,总有部分数组会被浪费链表:链表的存储空间是动态分布的,因此空间不会被浪费。但由于链表需要额外的空间来为每个节点保存指针,因此也需要浪费一部分空间时间性能顺序表:顺序表中元素的逻辑顺序与物理存储顺序保持一致,而且支持随机存取,因此顺序表在查找和读取时性能很好链表:链表采用链式的结构来...原创 2018-04-15 11:12:09 · 189 阅读 · 0 评论 -
数据结构复习计划
1.基础篇数据结构与算法知识 ·数组 ·链表 ·队列、栈 ·树 ·图的定义、存储和基本操作 ·杂凑(Hash表) ·常用的排序算法、查找算法、数值计算、字符串处理、数据压缩算法、递归算法、图的相关算法 ·算法描述和分析2.ACM常见题目篇3.leetcode篇2.剑指offer题目牛课网:https://www.now...原创 2018-01-16 23:13:04 · 935 阅读 · 0 评论 -
数据结构之图形结构二
图形的遍历图形遍历的方法有两种:深度优先遍历和广度优先遍历深度优先遍历有点类似于前序遍历:从图形的某一点开始遍历,被访问过的顶点就做上已访问的记号,接着遍历此顶点的所有相邻且未访问过的顶点中的任意一个顶点,并做上已访问的记号再已该点为新的起点继续进行深度优先的搜索。注意了:这种图形遍历方法结合了递归和堆栈两种数据结构的技巧。广度优先遍历遍历方式是以队列和递归技巧来遍历,也是从图形的某一顶点开始遍历...原创 2018-04-21 21:55:54 · 678 阅读 · 0 评论