
从零开始的算法
思简行繁乃成
回归本质
展开
-
三种并查集-思考与总结
概念并查集:每个集合用一棵树来表示,树根的编号就是整个集合的编号。朴素并查集一般有一个变量,为p[N]有三个基本操作,为初始化,查找根结点find(u),合并集合有三个共同操作,分别为查找父结点,查询关系,判断根结点第零步-名词解释p[N] p[]存储每个结点的父结点,p[x]表示x的父结点点或根结点第一步-三个基本操作初始化// 初始化,假定结点编号是1~nfor (int i = 1; i <= n; i ++ ) p[i] = i; // 每个结点的根结点(或父节点)都是自原创 2021-04-26 23:12:08 · 162 阅读 · 0 评论 -
堆的基本版和加强版(手撕堆)
堆的基本版基本堆有两个变量,分别为h[N], siz两个基本操作,分别为down(u), up(u)四个细节操作,分别为 初始化,插入值,求最值,删最值第零步-名词解释h[i] 表示第i个结点存储的值,i从1开始,2i是左子节点,2i + 1是右子节点siz 既表示堆里存储的元素个数,又表示最后一个结点的下标第二步-基本操作down(u)void down(int u){ int t = u;//t存储三个结点中存在的最小的结点的下标,初始化为当前结点u if (u *原创 2021-04-26 22:19:39 · 246 阅读 · 0 评论 -
栈与队列的模拟(手撕栈与队列)
为什么要栈与队列的模拟?虽然有stl,但模拟写的会更快!既然追求刺激,那就贯彻到底咯~栈栈一般有两个变量,分别为stk[N], tt;栈一般有五个操作,分别为初始化,尾插入, 尾弹出, 判栈空, 取栈顶。第零步-变量解释stk[N] 存储栈中元素,用时再初始化tt 栈顶指针,初始化为0第一步-初始化tt = 0; //作全局变量就不用初始化第二步-尾插入stk[ ++ tt] = x;第三步-尾弹出tt -- ;第四步-判栈空if (tt > 0) no emp原创 2021-04-26 16:25:24 · 149 阅读 · 2 评论 -
静态单链表与静态双链表(手撕链表)
为什么要用静态单双链表?之所以要静态单链表与静态双链表,是因为,相对而言用链表创建速度慢,而且,用链表书写也麻烦。静态单链表一般有四个变量,分别为head, e[N], ne[N], idx一般有五个操作,分别为初始化,头插,任意插,头删,任意删。第零步-变量解释head 表示头指针,指向头节点,存储头结点的下标,初始化为-1.e[i] 表示第 i 个结点存储的值 。用时再初始化。ne[i] 表示第 i 个结点指向的下一个结点,存储下一个结点的下标 。用时再初始化idx 表示下一个可以原创 2021-04-26 15:56:06 · 435 阅读 · 0 评论 -
归并排序的总结和思考
引言归并排序是什么?是建立在归并操作上的一种有效,稳定的排序算法。????不明觉厉~最差的时间复杂度也有O(nlogn)。牛~归并排序跟二分,快速排序一样,也是分治算法。三步走(1)分解成可解的子问题(2)求解子问题(3)合并子问题的解并构成原问题的解。归并排序的粗略概括将一段序列不断的迭代划分成两个区间,直到子区间为空或者只剩一个元素。那么也就意味着所有子区间都成了有序的序列。(没有元素和一个元素算作序列有序)然后不断将已有序的子序列递归合并,最终得到完全有序的序列;聪明的小原创 2021-04-19 19:18:36 · 589 阅读 · 5 评论 -
快速排序的总结与思考
引言快速排序是什么?快速的排序!???? 平均时间复杂度O(nlogn)快速排序跟二分和归并排序一样,也属于分治算法。而分治算法可粗略分成三步。(1)分解成可解的子问题(2)求解子问题(3)合并子问题的解并构成原问题的解。快速排序的粗略概括随机从一个待排序区间取一个数x,将区间分成两个区间,第一区间所有数>= x ,第二区间所有数 <= x 。然后两个区间各自再随机从自身区间取一个数x,将其自身再次分成两个区间,同样的,其子第一区间所有数>= x ,子第二区间所有原创 2021-04-19 18:45:52 · 403 阅读 · 5 评论 -
二分算法的总结与思考
引言笼统概括:二分算法把一个区间对半分成两部分,按某种性质每次只取一部分。然后将取的那部分再次对半分,如此往复。直到区间只剩一个数。细心的小伙伴会对上面的加粗的字有所警觉。对半分 ? 整数能每次都对半分吗?奇数怎么办?这涉及向上向下取整。某种性质 ?例如 ">=x" 为一种性质,这样把区间分成 "<x" 和 ">=x" 。只剩一个数 ? 浮点数怎么可能只剩一个数?这涉及精度问题。整数二分(~手动音效)真正二分之前,其实按照题目的具体意思,已经对区间按性质划成了两部分。事实上原创 2021-04-19 16:57:00 · 473 阅读 · 4 评论