![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法分析
数据结构与算法分析学习记录
三毛的二哥
If you want something,go get it.
展开
-
编程:十大经典排序算法---C++代码
本文整理自:https://www.runoob.com/w3cnote/ten-sorting-algorithm.htmlhttps://www.cnblogs.com/chengxiao/p/6104371.htmlhttps://www.biancheng.net/algorithm/what-is-algorithm.html目录0 概述1冒泡排序2 选择排序3 插入排序4 希尔排序5 归并排序6 快速排序7 堆排序8 计数排序9 桶排序10 基数排序0 概述常见的内部排序算法有:插入翻译 2021-12-12 22:37:05 · 975 阅读 · 1 评论 -
递归
递归是一种应用非常广泛的算法(或者编程技巧),很多数据结构和算法的编码实现都要用到递归,比如 DFS 深度优先搜索、前中后序二叉树遍历等等。递归需要满足的三个条件1. 一个问题的解可以分解为几个子问题的解2. 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样3. 存在递归终止条件如何编写递归代码?写递归代码的关键就是找到如何将大问题分解为小问题的规律,并且基于此写出递推公式,然后再推敲终止条件,最后将递推公式和终止条件翻译成代码。注意事项1.递归代码要警惕堆栈溢出递归调用超过原创 2021-03-28 21:35:45 · 51 阅读 · 0 评论 -
栈和队列
栈栈是一种“操作受限”的线性表结构,值允许在一端插入和删除数据,具有先进后出特点。栈可以通过数组实现,成为顺序栈,也可以通过链表实现,称为链式栈。队列与栈类似,队里也是是一种“操作受限”的线性表结构,具有先进先出特点。同样,用数组实现的队列叫作顺序队列,用链表实现的队列叫作链式队列。队列常用来管理线程,例如,“生产者—消费者模型”。有一篇无锁队列的实现的文章,可以细细品读,链接如下:https://coolshell.cn/articles/8239.html...原创 2021-03-28 21:24:22 · 58 阅读 · 0 评论 -
C++中链表与数组
C++中经常将链表与数组放在一起比较,根据自己的学习和理解,写个文档总结一下。存储结构数组:需要一块连续的内存空间来存储,随机访问效率高,但占用内存较大。扩容时需要再申请一块更大的内存空间,将原数组拷贝进去,非常费时。链表:将一组零散的内存块串起来使用,没有大小的限制,天然支持动态扩容。时间复杂度应用场景数组:随机访问速度要求高;内存要求苛刻。链表:插入删除速度要求高;练习常见的链表有单链表、双向链表和循环链表。可以分别使用循环链表和数组去解决典型的约瑟夫问题,加深理解。...原创 2021-03-28 21:04:51 · 620 阅读 · 0 评论