算法、基础
文章平均质量分 66
ossbourneman
这个作者很懒,什么都没留下…
展开
-
采用vector实现快排,堆排序,归并排序
半路出家,学习ing......快排:#include <iostream>#include <vector>using namespace std;template <typename T>void swap(T *i, T *j){ T *temp; temp = j; j = i; i = temp;}// increas...原创 2018-04-01 09:02:04 · 1315 阅读 · 0 评论 -
C++:采用vector实现二分查找及其变种总结
主要分为六种情况,闭区间,半开区间,中位值在循环之外的半开区间二分查找首个序列,中位值在循环之外的半开区间二分查找末尾序列,以及中位值在循环之外的完全开区间二分查找首个序列和中位值在循环之外的完全开区间二分查找末尾序列:#include <iostream>#include <vector>#include <assert.h>using namesp...原创 2018-04-01 10:44:05 · 2611 阅读 · 0 评论 -
C++: Dijkstra算法
Dijkstra算法是基于贪心策略的,时间复杂度为O(|V|^2)。对应代码解释: 1. 初始化:集合S初始为原点{istart},distance[]的初始值为distance[istart] = M[istart][i],i=1,2,...,vertex。 2. 从顶点集合V-S中选出iVerLeft,满足distance[iVerLeft] = Min{distance[ista...原创 2018-04-09 10:08:30 · 286 阅读 · 0 评论 -
z字形遍历二叉树
#include <bits/stdc++.h>using namespace std;struct TreeNode {public: int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL)...原创 2018-04-11 08:02:50 · 1477 阅读 · 0 评论 -
C++:背包问题总结
CASE1: 01背包,不需要满足刚好装满的条件#include <bits/stdc++.h>//#include <algorithm>using namespace std;void solvepack(int &len1, int &cap, vector<int> &w, vector<int> &v...原创 2018-04-05 21:44:29 · 758 阅读 · 0 评论