数据结构与算法
数据结构与算法学习笔记
keys_7
这个作者很懒,什么都没留下…
展开
-
约瑟夫环(循环链表+数学归纳)
约瑟夫环欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编原创 2020-11-21 18:41:10 · 325 阅读 · 0 评论 -
(三)数组
数组定义随机访问低效的“插入”和“删除”插入删除数组越界容器更适合使用数组的地方:数组下标从0开始小结思考JVM 标记清楚垃圾回收算法二维数组内存寻址死循环问题定义数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。线性表数组、链表、队列、栈非线性表二叉树、堆、图随机访问连续的内存空间和相同类型的数据。正是因为这两个限制,它才有了一个堪称“杀手锏”的特性:“随机访问”。但有利就有弊,这两个限制也让数组的很多操作变得非常低效,比如要想在数组中删除原创 2020-11-05 22:16:50 · 142 阅读 · 0 评论 -
(二)复杂度分析(下)
复杂度分析(下)最好情况时间复杂度最坏情况时间复杂度平均情况时间复杂度均摊时间复杂度在一个无序的数组(array)中,查找变量 x 出现的位置。如果没有找到,就返回 -1// n表示数组array的长度int find(int[] array, int n, int x) { int i = 0; int pos = -1; for (; i < n; ++i) { if (array[i] == x) pos = i; } return pos;}优化之后原创 2020-11-04 15:03:29 · 69 阅读 · 0 评论 -
(一)时间空间复杂度分析(上)
时间空间复杂度分析时间空间复杂度分析时间复杂度分析复杂度量级NP 问题常见的多项式时间复杂度O(1)O(logn)、O(nlogin)O(m+n)、O(m*n)空间复杂度分析小结时间空间复杂度分析事后统计法弊端:测试结果非常依赖测试环境测试结果受数据规模影响很大时间复杂度(渐进时间复杂度):表示代码执行时间岁数据规模增长的变化趋势时间复杂度分析只关注循环执行次数最多的一段代码加法法则:总复杂度等于量级最大的那段代码的复杂度注:常量可以忽略乘法法则:嵌套代码的复杂度等于嵌套内原创 2020-11-03 15:55:40 · 249 阅读 · 0 评论