![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法笔记
算法笔记
听♞海
多看,多学,多做
展开
-
堆解析及堆排序
堆是完全二叉树除最后一层上面都是满的最后一层的节点是从左到右按顺序的例小顶堆每个节点的值都小于(等于)左右子节点的值如下就是一个小顶堆。原创 2022-07-17 22:35:21 · 111 阅读 · 0 评论 -
C++ 中的优先队列
在C++中有一个东西叫做优先队列,大根堆或小根堆(priority_queue)例如priority_queue<int> p; 就为一个默认的大根堆,相当于priority_queue<int, vector<int>, less<int>> p;相反,priority_queue<int, vector<int>, greater<int>> q;就为小根堆举例代码如下,将大根堆/小根堆的堆顶元素输出#inclu原创 2022-03-09 14:12:49 · 459 阅读 · 0 评论 -
C++中sort函数从大到小排序
我们知道C++中有一个函数 sort()它默认是从小到大排序,那么如何从大到小排呢?一种方法是使用greater(),如下例子#include <iostream>#include <vector>#include <algorithm>using namespace std;int main() { vector<int> nums = {3, 2, 4, 1, 5}; sort(nums.begin(), nums.end原创 2022-02-07 23:15:19 · 6377 阅读 · 0 评论 -
C++读入带空格的字符串
不管cin还是scanf,在读入字符串时遇到空格、回车、文件结束符都会停止。那我们如何读入带空格的字符串呢?我们用以下方法来读入1.读入字符数组char s[100];//第二个参数为最多读入多少字符//第三个为从哪一个文件读入,一般为系统变量stdinfgets(s, 100, stdin);cout << s;//get或getline都可以char a[50];cin.get(a, 50);cout << a;2.读入stringstring str原创 2021-12-05 15:29:46 · 4315 阅读 · 0 评论 -
求最大公约数,一行代码解决
a和b的最大公约数=b与a mod b的最大公约数#include<stdio.h>int gcd(int a, int b) { return b ? gcd(b, a % b) : a;}int main() { int a, b; scanf("%d %d", &a, &b); printf("%d", gcd(a, b)); return 0;}原创 2021-12-04 09:48:13 · 664 阅读 · 0 评论 -
算法笔记——快速排序模板
“模板是经过千锤百炼,由各种各样的人尝试过各种各样的数据,才没有问题从而保留下来的。”#include <iostream>using namespace std;//快速排序——分治思想void quick_sort(int q[], int left, int right) { if (left >= right) return; int i = left - 1, j = right + 1, x = q[left + right >> 1];原创 2021-11-18 09:10:28 · 205 阅读 · 0 评论