
数据结构初阶
文章平均质量分 82
tyler-泰勒
这个作者很懒,什么都没留下…
展开
-
数据结构:七种排序及总结
归并排序的思想是通过二分找中间值,[left,中间值] ,[中间值+1,right]两个序列再二分,直到left>=中间值,然后通过递归返回原来的函数栈帧进行排序,因为只有logn个函数栈帧,每次栈帧内最坏排n个数据。序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排。从i=0开始遍历,每次i之前的序列都是有序的,通过判断当前i的值能够在i之前哪个位置,找到后直接插入,第一个循环是n,第二个循环最坏是n,所以是最大n^2。原创 2024-11-07 19:52:43 · 1834 阅读 · 10 评论 -
数据结构:堆的算法
具体实现方法为,循环把头结点和尾结点进行交换,因为头结点是一个结构最大或者最小的,这时候我们把尾部结点减少一个,在进行向下调整,然后再进行交换,把次大或次小的数据放到最后一个,尾部结点减少一个,向下调整…我们可以先建立一个大小为k的堆,然后通过后N-k个数据依次和堆的头结点进行比较,判断是否入堆,如果入堆就向下调整到合适位置,这样数据读完我们就可以销毁文件,那么空吉安复杂度则只有建立的堆,然后堆的数据即为topk.因为大堆的头结点是最大的,一开始放到尾结点,这样就是升序,反之小堆调整则为降序。原创 2024-09-12 00:03:21 · 1208 阅读 · 0 评论 -
数据结构初阶:栈的概念和如何模拟栈?
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。有两种结构和次类似,链表和数组,但是相比较来说数组的结构更加优良,因为。如图我们先录入数据1在栈底,然后再录入2,3和新的数据最新录入的数据就是栈顶的位置。这一步严格对应了前面的LIFO(Last In First Out)先进后出的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。原创 2024-08-06 11:35:37 · 358 阅读 · 0 评论 -
数据结构初阶必修:——时间复杂度和空间复杂度
空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。通过上面我们会发现大O的渐进表示法去掉了那些对结果影响不大的项,简洁明了的表示出了执行次数。1.时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法。例如上面的数组就是就是提前申请的空间。原创 2024-08-05 00:19:25 · 829 阅读 · 0 评论