算法(第四版)C++代码实现(已完结)
文章平均质量分 62
大一2020级霍格沃茨学院在读学生 《算法》C++版代码实现
Love 6
腾讯WXG在职后台小鹅
展开
-
算法第四版C++算法实现全集
文章目录前引造轮子博客链接(未完结 持续更新)前引博主最近在看算法第四版 然后发现里面用的是java语言写的但是觉得 这个算法第四版其实真的就是加强版《数据结构与算法》编程正所谓编程 我认为的是编程在前 看书为辅所以打算书上绝大部分有意义的算法都再重新造一遍轮子 总结一遍不然看书看得懂 看完留下的终究是很少很少的记忆造轮子博客链接(未完结 持续更新)C++ 最大公约数算法实现(第一章)C++ 二分查找算法实现(第一章)...原创 2021-04-06 19:56:35 · 4398 阅读 · 3 评论 -
手撕最小堆(重构堆 + 插入数据 + 删除数据 代码讲解 + 例题)
文章目录推荐堆排序博客与视频讲解前引堆介绍1、Heapify(重建堆)2、Push(插入数据)3、Pop(删除数据)最小堆代码实现最小堆例题链接推荐堆排序博客与视频讲解堆排序(堆重建 + 插入 + 删除详细讲解)UP主:秃头少女王某人 强推前引今天10点才起床 大二了 真的不知道为什么越起床越晚了 当然现在也是周末 但是起这么晚 还是得做事情 在每日三道面试题的发现 第二个竟然是手撕堆排序 说来太惭愧了 原来数据结构 本来对手撕堆排序超级超级自信的 结果 我这一次从零开始写 写了好久 呜呜原创 2021-11-06 20:07:46 · 469 阅读 · 0 评论 -
手撕KMP字符串匹配算法(算法代码讲解 + KMP例题)
文章目录前引前引近来原创 2021-11-05 22:34:54 · 579 阅读 · 0 评论 -
手撕红黑树(红黑树介绍 + 红黑树插入代码详细讲解)
文章目录前引推荐数据结构可视化网址推荐讲解红黑树的博客与视频红黑树介绍1、接触红黑树的原因2、二叉搜索树的介绍1、二叉搜索树BST(不自平衡)2、AVL树(完美自平衡二叉搜索树)3、红黑树(综合性能强劲 不平凡的二叉弱平衡搜索树)3、红黑树的特性4、红黑树的属性介绍5、红黑树的插入代码解析1、没有根节点(直接插入)2、父节点黑色、叔节点任意(直接插入)3、父节点红、叔节点黑(LL、LR、RL、RR)1、LL旋转2、LR旋转3、RL旋转4、RR旋转4、父节点红、叔节点红(递归)红黑树代码实现(插入)1、验证数原创 2021-11-04 20:02:48 · 1827 阅读 · 3 评论 -
手撕AVL树(含旋转代码讲解 + 例题)
文章目录前引AVL树的理解INSERT(LL、LR、RR、RL旋转)前引因为这段时间学习数据库 看到B 和 B+树 感觉到很陌生 觉得这个时候是时候去整理一些之前数据结构拖欠的相关比较复杂的树的内容了 所以也就有了此篇我的初步打算 是打算手撕系列 写两篇 一篇写手撕AVL 一篇写手撕红黑树 手撕红黑树 哈哈 希望自己之后能够写下来 因为红黑树在面试中的考察频率还是相当高的 所以我觉得如果不手撕一次 我是没有办法彻底理解红黑树的实现的如果面试中 考察了红黑树的插入与删除 没有手撕一次的过程原创 2021-11-03 15:59:49 · 962 阅读 · 3 评论 -
手撕快速排序(递归版本 + 非递归版本) + 归并排序
文章目录前引快速排序1、递归版本(快速排序)2、非递归版本(快速排序)前引这两天做了两篇博客 一篇是手撕AVL树 一篇是手撕红黑树 因为后面在看数据库底层 那肯定要对B树 以及B+树很熟悉自己才能看得懂 所以就着这几天的手撕博客 自己把一些比较常考 且相对不是那么好写的数据结构都给做个整理 做一篇 手撕数据结构的总结博客吧 代码的话 前几天自己才手撕过了 就直接搬运过来用了快速排序1、递归版本(快速排序)快速排序的话 主要还是注意 最后有个swap 需要把最左边的数字放到正确的位置原创 2021-11-04 22:15:31 · 258 阅读 · 0 评论 -
C++ 二分查找upper_bound lower_bound算法实现+习题博客
文章目录前引upper_bound lower_bound算法理解my_upper_bound代码实现my_lower_bound代码实现相关习题博客链接 自写upper_bound lower_bound函数前引这部分今天在刷力扣专题的时候 就想到了自己实现upper_bound 和 lower_bound函数 我记得大概在几个月以前自己就去搜过 那个时候自己依葫芦画瓢自己写了 但是觉得不是属于自己的 之后还需要自己写一遍于是今天就来了 刚好遇到了需要使用lower_bound upper_bo原创 2021-09-27 12:00:39 · 460 阅读 · 0 评论 -
面试常见缓存算法LRU理解 C++代码实现+习题博客
文章目录LRU算法理解后台程序实例理解数据结构的实现相关习题博客链接 熟悉LRU操作 STL库实现LRU算法理解这个算法是我在力扣做题中看到的 刚好不知道 其实也说明自己了解的确实也太少了 现在就先写一下LRU算法全程就是 Least Recently Used 机翻最近最少使用后台程序实例理解这个理解也大概是我从力扣题解中得到的这个算法可以用在的实例中 比如我们的后台程序 这是目前顺序这是当我们点击bilibili后 第一个程序出现的就说bilibili了 然后剩下的程序就自然向后原创 2021-04-21 19:58:12 · 461 阅读 · 0 评论 -
算法C++ 哈夫曼树与哈夫曼编码算法理解+示例习题(第五章)
文章目录前引浙大数据结构讲解哈夫曼树视频链接我的理解哈夫曼树存在的意义哈夫曼编码存在的意义如何构建哈夫曼树哈夫曼编码构建哈夫曼树习题+习题博客链接前引这应该是倒数第二篇关于算法的了现在想想算法这本书就快要走到尽头了 我也是不知道之前我怎么慢慢坚持把整本书大部分的内容都记录了下来 并写了绝大部分的代码实现的关于哈夫曼树 我的记忆特别特别清楚就是做了浙大数据结构中的一道题 叫做Huffman Codes相关我的习题博客链接 和关于哈夫曼树习题的链接我放在最底下面如果有想要完全挑战一下自己的可以原创 2021-04-26 17:33:31 · 1640 阅读 · 0 评论 -
算法C++ KMP子字符串查找算法理解+示例代码(第五章)
#include <iostream>#include <vector>using namespace std;void getnext(auto& next,const auto& pattern){ int size = pattern.size(); for(int i=1;i<size;++i) { if(next[i-1] && pattern[i] == pattern[next[i.原创 2021-04-26 09:35:00 · 581 阅读 · 2 评论 -
算法C++ 字典树 单词查找树示例代码实现(第五章)
文章目录造轮子博客链接前引闲聊(补)代码实现测试示例字符串测试预期结果实现效果造轮子博客链接算法第四版C++算法实现全集前引闲聊这篇字典树 差不多是算法最后一章的最后几个算法之一了那个 三向字符串匹配 就饶过我吧 确实看不进去了而且感觉考的也不是很多 就放过了之前写了很多闲聊的 就是聊最近发生的事情 然后自己怎么想的主要当时在上英语课 我在用手机上的csdn编辑文字结果编辑了半天 写完了 打算回去了再改改结果发现没办法保存 那没办法了 ????好像现在除了字典树之后只有一个K原创 2021-04-25 20:30:48 · 481 阅读 · 0 评论 -
算法C++ 高位优先排序MSD排序示例代码实现+算法实现(第五章)
文章目录造轮子博客链接代码实现字符串示例实现效果造轮子博客链接算法第四版C++算法实现全集代码实现#include <iostream>#include <string>#include <vector>using namespace std;void MSD(vector<string>& tempnames,vector<string>& names,vector<int> count,ve原创 2021-04-24 23:17:02 · 477 阅读 · 0 评论 -
算法C++ 低位优先排序LSD排序示例代码实现+算法理解(第五章)
文章目录造轮子博客链接我的理解代码实现测试字符串示例实现效果造轮子博客链接算法第四版C++算法实现全集我的理解C++ 字符串排序 键索引计数法排序示例代码实现+算法理解(第五章)其实就是上一个键排序的衍生了 对每一个字符进行排序感觉其实还是差不多 没什么好理解的一个字符一个字符进行排序代码实现#include <iostream>#include <string>#include <vector>using namespace std;原创 2021-04-24 20:28:12 · 316 阅读 · 0 评论 -
算法C++ 字符串排序 键索引计数法排序示例代码实现+算法理解(第五章)
文章目录造轮子博客链接前引我的理解字符串排序 键索引示例代码实现实现效果造轮子博客链接算法第四版C++算法实现全集前引这一章也是算法第四版的最后一章了在我打算把这本书看完后 也要进入学习计算机庞大知识体系的书籍中了而且在写下这些代码中 我并不认为这些代码在半年一年后我是记得的 但我依然还是打算花时间写毕竟也不是很困难 而且代码这个东西写了就是写了 没写就是没写写了那些东西就是属于你自己的哪怕忘了也是无所谓的 这些代码还是属于自己的 而且总归是有点印象的但是只是看书 不敲代码原创 2021-04-24 18:09:50 · 386 阅读 · 0 评论 -
算法C++面试常考算法Dijkstra + Floyd最小生成树算法代码 例题+算法理解(面试复习用)
文章目录视频讲解+算法精讲链接我的理解(复习专用)Floyd算法我个人的理解+模板代码Floyd算法可行处证明博客链接Dijkstra算法个人的理解+代码模板Dijkstra算法模板相关习题链接视频讲解+算法精讲链接Floyd讲的很简单易懂:Floyd-傻子也能看懂的弗洛伊德算法Floyd+Dijkstra具体视频讲解:图论最短距离(Shortest Path)算法动画演示-Dijkstra(迪杰斯特拉)和Floyd(弗洛伊德)某乎上讲的代码模板Dijkstra:通俗解释Dijkstra算原创 2021-04-22 23:31:58 · 436 阅读 · 0 评论 -
算法C++ 面试常考算法最小生成数 Kruskal算法和Prim算法理解(第四章)
文章目录8分钟最佳视频理解Prim算法和Kruskal算法最小生成树我的理解Kruskal算法理解排序插入选取Prim算法理解算法理解相关习题链接8分钟最佳视频理解Prim算法和Kruskal算法最小生成树(Kruskal(克鲁斯卡尔)和Prim(普里姆))算法动画演示 WAY_zhong制作最小生成树我的理解一条通路将图中所有中的点连接起来 并且其权值相加具有最小之和不存在环的一种树状结构 就是最小生成树 这是我的理解假如一个图中一共有v个节点 最小生成树中就有v-1条线段连接我在网原创 2021-04-22 15:58:34 · 261 阅读 · 0 评论 -
算法C++ 面试常考拓扑排序理解 面试复习用(第四章)
文章目录造轮子博客链接参考博文闲聊拓扑排序的理解思路分析 代码如何输出拓扑序拓扑排序有关的题目 实践出真知造轮子博客链接算法第四版C++算法实现全集参考博文一文七图搞懂面试常考算法「拓扑排序」 作者:码农田小齐闲聊我对于一些我实在看不下去的东西 有的时候也忘记了 感觉不是很重要的话 我就会去网上搜索 这个东西面试会不会考察 发现要考察的时候 还是觉得要写一篇博客 来记录一下 因为毕竟我对于我不是很想看的东西的话 我的理解相对来说就没有那么好 写一篇总比没写好拓扑排序的理解图分为无向原创 2021-04-18 17:35:00 · 282 阅读 · 0 评论 -
算法C++ DepthFirstSearch BreadthFirstSearch代码模式示范实现(第四章)
文章目录造轮子博客链接DFS代码实现(递归模板示范)代码实现(BFS模板示范)造轮子博客链接算法第四版C++算法实现全集DFS可在STL中补充功能 下面的代码模式是结合的邻接表C++ 邻接表STL实现(第四章)DFS代码实现(递归模板示范)//不妨可以在邻接表中增加一行 //这个算法再补充一点是回溯法的核心思想//可作为检测两个节点是否相连的算法访问bool visit[v1] = false; //v1为节点最大数 初始化为全没有访问过bool Backtracking(in原创 2021-04-17 17:59:14 · 233 阅读 · 0 评论 -
算法C++ 邻接表STL实现(第四章)
文章目录造轮子博客链接代码实现测试数据实现效果造轮子博客链接算法第四版C++算法实现全集代码实现#include <iostream>#include <vector>#include <unordered_set>using namespace std;struct Graph{ int maxvertex; int V;//¶¥µãÊý int E;//±ßÊý int maxdegrees; vecto原创 2021-04-17 16:02:30 · 537 阅读 · 0 评论 -
算法C++ 红黑树无代码实现 仅记录我对红黑树的认识和理解(面试复习用)
文章目录参考博客照本宣科的写问题 写理解1.stl中的set、map底层用的什么数据结构?我的理解:人家的理解:2.红黑树的数据结构怎么定义的?我的理解:人家的理解:3.红黑树有哪些性质?我的理解:人家的理解:4.红黑树的各种操作的时间复杂度是多少?我的理解:人家的理解:5.红黑树相比于BST和AVL树有什么优点?我的理解:人家的理解:6.红黑树相对于哈希表,在选择使用的时候有什么依据?我的理解:人家的理解:(解释的确实比我更宽泛更严谨 下来我还要多揣摩一下人家的理解)7.如何扩展红黑树来获得比某个结点小的原创 2021-04-16 18:07:12 · 498 阅读 · 1 评论 -
算法C++ 二叉搜索树代码实现 无删除操作(第三章)
文章目录造轮子博客链接前引代码实现测试数据实现效果造轮子博客链接算法第四版C++算法实现全集前引这个是关于二叉树删除的前引哎 确实感觉到二叉树删除并不好做 这可能是我的第二次做二叉树删除了因为学这本算法 我都是想看相关的实现 在不看书上代码的情况下 自己做出来在不看书的情况下 我前面总结的基本上都是脱离书本自己实现的但是这个 二叉树的删除 我很清楚 就是找到那个点 右边子节点中最小的那个点替换 但确实感觉到细节太多了 就算了 不实现了 思路反正还是知道了只是真的感觉太烦了 第一次实现的原创 2021-04-14 21:51:28 · 269 阅读 · 0 评论 -
算法C++ 堆排序代码实现(第二章)
文章目录造轮子博客链接代码实现测试数据1实现效果1测试数据2实现效果造轮子博客链接算法第四版C++算法实现全集代码实现#include <iostream>#include <vector>using namespace std;struct Heap{private: int heap_size; vector<int> heap;public: Heap(){heap.push_back(INT_MIN),heap_s原创 2021-04-14 16:52:41 · 133 阅读 · 0 评论 -
算法C++ 优先队列 堆排序大顶堆代码实现(第二章)
文章目录造轮子博客链接代码实现(仅限于int的输入)测试数据1实现效果1测试数据2实现效果2造轮子博客链接算法第四版C++算法实现全集代码实现(仅限于int的输入)#include <iostream>#include <vector>using namespace std;struct Priority_Queue{private: int heap_size; vector<int> heap;public: Prio原创 2021-04-13 21:49:21 · 282 阅读 · 0 评论 -
算法C++ 快速排序递归代码实现(第二章)
文章目录造轮子博客链接我对快速排序的理解代码实现测试数据1实现效果1测试数据2实现效果2造轮子博客链接算法第四版C++算法实现全集我对快速排序的理解我认为快速排序 真的是必须必须必须要能够在15分钟之内手撕出来的算法 重要性不言而喻 无论是面试还是考试其他的地方而言除了对于面试这些其他之外 确实可能是最实用也是目前最快的排序算法了就像C++的sort还是 用的也是快排但是确实 我认为快排需要注意的地方太多了我今天下午的英语课一点东西没听 就在研究看书 看快排今天晚上在图书馆里面 把书原创 2021-04-13 20:26:46 · 276 阅读 · 0 评论 -
算法C++ 归并排序从顶至下递归排序代码实现(第二章)
#include <iostream>#include <vector>using namespace std;void merge(auto& tempvector,auto& unsorted_vector,int low,int mid,int high){ int lowpos = low,highpos = mid+1; for(int i=low;i<=high;++i) tempvector[i] = un原创 2021-04-13 09:29:15 · 327 阅读 · 0 评论 -
算法C++ 希尔排序代码实现(第二章)
文章目录造轮子博客链接我对希尔排序的理解代码实现测试数据1实现效果1测试数据2实现效果2造轮子博客链接算法第四版C++算法实现全集我对希尔排序的理解在刚刚实现了插入排序之后马上来看希尔排序 相对来说还是轻松了许多我还能记得第一次学希尔排序肯定是零收获的因为当时实现的时候 代码基本等于抄 然后让自己写肯定写不出来的希尔排序相对插入排序快很多的原因书上是这样写的 权衡了子数据的规模和有序性我用我的理解来解释一下我是怎么看这句话的插入排序本身的优势就是在于 对于一些已经排好序的数组是相原创 2021-04-13 08:35:18 · 261 阅读 · 0 评论 -
算法C++ 插入排序代码实现(第二章)
文章目录造轮子博客链接代码实现测试用例实现效果造轮子博客链接算法第四版C++算法实现全集代码实现#include <iostream>#include <vector>using namespace std;int main(){ int temp; vector<int> unsorted_vector; cout<<"please input ur unsorted_list ~ '-1' is the sto原创 2021-04-13 08:35:01 · 284 阅读 · 0 评论 -
算法C++ 选择排序代码实现(第二章)
文章目录造轮子博客链接代码实现测试用例实现效果造轮子博客链接算法第四版C++算法实现全集代码实现#include <iostream>#include <vector>using namespace std;int main(){ int temp; vector<int> unsorted_vector; cout<<"please input ur unsorted_list ~ '-1' is the sto原创 2021-04-12 18:11:06 · 413 阅读 · 0 评论 -
算法C++ 动态连通性实例算法实现 路径压缩含测试示例(第一章)
#include <iostream>#include <vector>using namespace std;struct Union_Find{private: int count; vector<int> u;public: Union_Find(int number){count = 0,u = vector<int>(number+1,0);} int Print_Count() {return原创 2021-04-12 09:08:52 · 255 阅读 · 0 评论 -
算法C++ josephus幸存者问题STL库vector实现(第一章)
造轮子博客链接算法第四版C++算法实现全集代码实现#include <iostream>#include <vector>using namespace std;int main(){ int num_survivors,num_die,diecount = 0; vector<int> alivepeople; cout<<"Survivors are numbers:"; cin>>num_su原创 2021-04-09 22:23:27 · 472 阅读 · 0 评论 -
算法C++ 迭代反转链表实现(第一章)
造轮子博客链接算法第四版C++算法实现全集代码实现#include <iostream>using namespace std;template <class T>struct ListNode{ T item; ListNode* next; ListNode(T t1,ListNode* next1 = NULL){item = t1,next = next1;} ~ListNode(){}};template <cl原创 2021-04-09 21:20:38 · 201 阅读 · 0 评论 -
算法C++ 背包链表实现支持多类型(第一章)
造轮子博客链接算法第四版C++算法实现全集代码实现(较堆栈稍微修改了下 增加了遍历背包功能)#include <iostream>#include <string>using namespace std;template <typename T>struct ListNode{ T item; ListNode* next; ListNode(T T1,ListNode* next1 = nullptr){item = T1,n原创 2021-04-09 18:22:07 · 230 阅读 · 0 评论 -
算法C++ 队列链表实现支持多类型(第一章)
造轮子博客链接算法第四版C++算法实现全集代码实现(较堆栈更改了链表插入删除方式)#include <iostream>#include <string>using namespace std;template <typename T>struct ListNode{ T item; ListNode* next; ListNode(T T1,ListNode* next1 = nullptr){item = T1,next =原创 2021-04-09 17:53:01 · 277 阅读 · 0 评论 -
算法C++ 非定容栈链表实现支持多类型(第一章)
文章目录造轮子博客链接代码实现造轮子博客链接算法第四版C++算法实现全集代码实现#include <iostream>#include <string>using namespace std;template <typename T>struct ListNode{ T item; ListNode* next; ListNode(T T1,ListNode* next1 = nullptr){item = T1,next原创 2021-04-08 21:50:35 · 143 阅读 · 0 评论 -
算法C++ 非定容栈模板功能实现(第一章)
造轮子博客链接算法第四版C++算法实现全集代码实现#include <iostream>#include <vector>using namespace std;template <class T>class MyStack{private: int totalsize; int stack_size; T* s;public: MyStack(){stack_size = 0,totalsize = 2,s = n原创 2021-04-07 19:09:30 · 181 阅读 · 0 评论 -
算法C++ 下压栈邮箱管理实例STL库实现(第一章)
造轮子博客链接算法第四版C++算法实现全集代码实现#include <iostream>#include <stack>using namespace std;int main(){ unsigned int maxnumber = 10; string temp; stack<string> emails_stack; cout<<"there are emails which sended to u:"&l原创 2021-04-06 21:16:23 · 334 阅读 · 0 评论 -
算法C++ 先进先出队列银行排号系统STL库实现(第一章)
文章目录造轮子博客链接代码实现实现效果造轮子博客链接算法第四版C++算法实现全集代码实现#include <iostream>#include <queue>using namespace std;int main(){ int temp,customers_count = 0; unsigned maxnumber = 10;//今天银行只接待10个人 queue<int> number_line; cout<原创 2021-04-06 20:59:25 · 630 阅读 · 0 评论 -
算法C++ 背包类似集合数据类型处理 弹珠处理(第一章)
文章目录造轮子博客链接代码实现实现效果造轮子博客链接算法第四版C++算法实现全集代码实现#include <iostream>#include <vector>#include <set>#include <algorithm>using namespace std;int main(){ int temp,numbers; string colours[] = {"red","blue","green","black原创 2021-04-06 20:36:38 · 434 阅读 · 0 评论 -
算法C++ 二分查找算法实现(第一章)
文章目录代码实现实现效果(无法找到)实现效果(找得到)代码实现#include <iostream>#include <vector>using namespace std;int My_Binary_Search(const auto& nums_List,int number){ int left = 0,right = nums_List.size() - 1; while(left<=right) { in原创 2021-04-06 19:45:37 · 516 阅读 · 0 评论 -
算法C++ 最大公约数算法实现(第一章)
文章目录代码实现实现效果代码实现#include <iostream>using namespace std;int gcd(int p,int q){ if(!q) return p; return gcd(q,p%q);}int main(){ int p,q; cout<<"input two numbers u want to get gcd using ' ' to split:"; cin>>p&原创 2021-04-06 15:24:48 · 992 阅读 · 0 评论