![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法第四版读书笔记C++
算法第四版读书笔记
鱼儿冒个泡
这个作者很懒,什么都没留下…
展开
-
【算法第四版 读书笔记】图——有向图
//有向图的数据类型class Digraph{private: int V; int E; int* adj;public: Digraph(int V); //创建一个含有V个顶点不含边的有向图 int V() { return V; } //顶点总数 int E() { return E; } //边的总数 void addEdge(in原创 2021-07-29 20:46:55 · 87 阅读 · 0 评论 -
【算法第四版 读书笔记】图——无向图
//图的抽象数据类型class Graph {public: Graph(int v); //创建一个含有V个顶点不含边的图 int V()const; //顶点数 int E()const; //边数 void addEdge(int v, int w); //添加一条边v-w vector<int> adj(int v)const;原创 2021-07-26 18:39:52 · 80 阅读 · 0 评论 -
【算法第四版 读书笔记】二叉搜索树
#include<iostream>#include<exception>using namespace std;class NoAnswer : public exception { const char* what()const throw() { return "NO ANSWER.\n"; }};template<class Key, class Value>class binarySearchTree {pr原创 2021-07-12 22:53:00 · 111 阅读 · 0 评论 -
【算法第四版读书笔记】堆排序
//堆的算法//由下而上的堆有序化(上浮)void swim(vector<int>& nums, int k) { while (k > 1 && nums[k] > nums[k/2]) { swap(nums[k], nums[k / 2]); k /= 2; }}//由上而下的堆有序化(下沉)void sink(vector<int>& nums, int k) { while (2 * k < n原创 2021-05-04 09:14:14 · 115 阅读 · 0 评论 -
【算法第四版读书笔记】快速排序
//快速排序int partition(vector<int>& nums, int low, int high) { int i = low, j = high + 1; while (true) { //内循环元素移动次数少 while (nums[++i] < nums[low]) if (i == high) break; while (nums[--j] > nums[low]) if (j == low) break; if (原创 2021-04-08 15:11:45 · 87 阅读 · 0 评论 -
【算法第四版读书笔记】归并排序
//归并排序,自顶而下//对于长度为N的任意数组,需要0.5NlgN至NlgN次比较//对于长度为N的任意数组,最多需要访问数组6NlgN次void merge(vector<int>& a,int low,int mid,int high) { vector<int>aux(a.begin(), a.end()); int i = low, j = mid + 1; for (int k = low; k <= high; ++k) { if (原创 2021-04-08 15:11:27 · 71 阅读 · 0 评论 -
【算法第四版读书笔记】初级排序算法
初级排序算法——冒泡排序、选择排序、插入排序、希尔排序void swap(int &a, int &b) { a = a ^ b; b = a ^ b; a = a ^ b;}void bubble_sort(vector<int>& nums) { int len = nums.size(); for (int i = 0; i < len-1; ++i) { for (int j = i + 1; j < len; ++j) {原创 2021-04-08 15:11:11 · 62 阅读 · 0 评论 -
【算法第四版读书笔记】链表
之前看到algosup博主写的链表实现,觉得非常不错,就没改Algorithm4上的代码了class MyListForward{private: struct ListNode{ int val; ListNode* next; ListNode(int x) :val(x), next(nullptr) {} }; ListNode* head;public: MyListForward() :head(nullptr原创 2021-04-11 12:48:12 · 100 阅读 · 0 评论 -
【算法第四版 读书笔记】定容栈,下压栈
定容栈class FixedCapacityStack { int* a = nullptr; //stack entries int N; //sizepublic: FixedCapacityStack(int cap) { a = new int(cap); } bool isEmpty() { return N == 0; } int size() { return N; } void push(int val) { a[N++原创 2021-04-11 12:43:39 · 66 阅读 · 0 评论 -
【算法第四版读书笔记】Dijkstra双栈算术表达式求值算法
1、将操作符压入操作数栈2、将运算符压入运算符栈3、忽略左括号4、遇到右括号时,弹出一个运算符,弹出所需要数量的操作数,并将操作符和操作数的运算结果压入操作数栈#include<iostream>#include<stack>#include<string>#include<cmath>#include<sstream>using namespace std;void fun() { string s; stack<原创 2021-03-23 23:37:33 · 131 阅读 · 0 评论