![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
yamotl
这个作者很懒,什么都没留下…
展开
-
数据结构2 常见数据结构的增删改查
2.有序数组增加,需要找到插入位置再增加,因此时间复杂度是o(n),**修改操作由于要保证顺序,那么就找到要删的数据删掉再插入数据,简化为删除再增加两个操作,查找的时候用折半查找,只要涉及到除以2的算法时间复杂度一般都为o(logn)4.无序链表的增加找到无序链表的最后一个插入,插入的时候,找前一个元素,先让插入元素next域指向下一个元素,再让前一个元素的next域指向插入元素。无序链表的删除找到需要删除的元素的前一个元素,让它的next域指向下一个的下一个。3.栈和队列的增加和删除十分类似。原创 2023-10-22 11:55:04 · 143 阅读 · 1 评论 -
数据结构1 目录 时间复杂度 有序树的构造与先序中序后序遍历 哈夫曼树与哈夫曼编码
1.路径和路径长度:从根节点到后代节点的道路称为路径,通路当中分支节点的个数称为路径长度,若规定根节点的层数为1,则从根节点到第L层节点的长度为 L-1。4.树的带权路径长度:树中所有叶子节点带权路径之和,记作WPI,权值越大的节点离根节点越近的二叉树就是最优二叉树,也叫哈夫曼树。*有序树(左子树的值要比根节点小,右子树的值要比根节点大,相等的左右都可以放,不具有这个特点的叫无序树)3.带权路径长度:从根节点到该节点的路径长度与该节点的权的乘积。选最小的3和7加起来做10和8一层。原创 2023-10-21 21:20:03 · 110 阅读 · 1 评论 -
第五次课 栈、方法调用与传参
每个独立运行的程序都是自己独占一片内存区域且互不影响,程序占用内存空间是申请一个或多个非常大的数组,如果是多个要关联起来。每个程序都占的内存比较大,其中分成多个小小的内存,被不同的子程序占用。原创 2023-10-06 22:40:17 · 28 阅读 · 1 评论 -
第四次课 快速排序、归并排序、堆排序
24,26,31,78,88,99,32,-2,-1,1,57,11,13,15,18,21,35,59,62,65,68 n个有序数组,每个数组长度为1。优化版本从每组数里面的前三个选择中间的数作为基准数,未优化的就选取比较后分开的每组数的第一个数作为基准数就可以.选树顶的挑出来,然后将树末尾的数补到最顶,然后和两个孩子进行比较,大的孩子放到最顶,逐渐下放,形成新的大根堆。按照数组顺序插入,跟父节点进行比较,如果比父节点大,则和父节点的值进行交换。2+1,右节点的下标=父节点的下标。原创 2023-10-04 17:29:52 · 38 阅读 · 1 评论 -
第三次课--折半查找与冒泡排序
只有n个有序数组数据才可以用折半查找,链表数据不可以用。只有达到log和O(1)级别才是真正的商用级别。这种简单数据结构的书写不能超过两分钟;比较 1+2+3+…时间复杂度–cpu计算次数。时间复杂度是O(n^2);空间复杂度–空间单位消耗。1.折半查找/二分查找。需要进行n-1轮比较。原创 2023-10-03 22:16:48 · 36 阅读 · 1 评论