![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
data struct and algorithm
问君陈
技术驱动 迎难而上 随机应变
展开
-
c++优先队列 priority_queue 二叉堆 最大堆实现
文章目录前言一、priority_queue使用方式1.初始化方式2.成员函数二、 二叉堆的实现原理二、自己实现的priority_queue 最大堆代码前言c11 stl中提供优先队列的数据结构,可以实现最大堆和最小堆一、priority_queue使用方式1.初始化方式std::prioriry_queue<int> tmp; //默认最大堆std::priority_queue<int, vector<int>, std::greater<int原创 2020-11-16 15:32:07 · 342 阅读 · 0 评论 -
leetcode 207. 课程表 -- 图论 拓扑排序
一 题目描述二 解题思路这道题是图论问题,是典型的拓扑排序问题,拓扑排序后可判断有向图是否有环可以采用DFS和BFS解题三 实现代码// BFSclass Solution {public: bool canFinish(int numCourses, vector<vector<int>>& prerequisites) { // 拓扑排序,可以不需要课程个数 // 针对这道题这里可以直接用vector<int&原创 2020-11-11 00:47:42 · 179 阅读 · 0 评论 -
c++ next_permutation 下一个排列 全排列
文章目录一、next_permutation二、使用步骤三、next_permutation实现代码一、next_permutationnext_permutation是stl按照字典序获取下一个排列的函数,常与vector搭配使用二、使用步骤2.1 获取下一个排列#include <iostream>#include <algorithm>#include <vector>using namespace std;int main() { .原创 2020-11-07 23:37:45 · 943 阅读 · 0 评论 -
排序-冒泡、选择、插入、快速、归并
排序算法是一种很重要的算法,虽然c++ stl中有sort函数,但是还是要了解其中常用的几种排序算法,至于std::sort源码实现使用的排序算法是混合式排序,详见std::sort源码剖析std::sort只支持vector,array等迭代器支持随机存取的容器,因为内部是快排和堆排std::list这种不支持随机存取,内部有单独的sort函数,实现是迭代版归并排序有些排序算法时间复杂度都是受限原数据的排序情况的,比如最坏的情况原数组完全逆序,快速排序时间复杂度是O(n^2),但是最好的情况原数组已原创 2020-11-01 18:43:07 · 157 阅读 · 0 评论