随笔分类 - 数据结构
栈的基本操作
摘要:###栈的顺序存储结构 缺点:要设置栈存储的最大值 ####顺序栈的实现 #include "iostream" #define MaxSize 50 //栈的结构体 struct Stack{ int data[MaxSize]; int top; }stack; //初始化栈 void init
链式存储结构
摘要:链表的插入,删除比较方便,在给定前驱节点的时候,时间复杂度为O(1) 查找比较麻烦,要根据头指针一个一个往下找,时间复杂度为O(n) ###单链表 ####头插法 使用头插法,读入数据的顺序与生成链表的元素顺序是相反的 #include "iostream" typedef struct LinkN
高效计算时间复杂度
摘要:####题目来自王道的书,有些方法是自己总结的,有错的地方见谅 一个语句的频度是指该语句在算法中被重复执行的次数。算法中所有语句的频度之和记为T(n),它是该算法问题规模n的函数,时间复杂度主要分析T(n)的数量级。 算法中基本运算(最深层循环内的语句)的频度与Tn)同数量级,因此通常采用算法中基本
归并排序
摘要:平均时间复杂度:O(nlogn) 最佳时间复杂度:O(n) 最差时间复杂度:O(nlogn) 空间复杂度:O(n) 排序方式:In-place 稳定性:稳定 def merge_sort(num1, num2): # 按大小合并数组 tmp = [] low = 0 high = 0 while l