
天下君的算法学习
OSFPU
龙隐天下也
展开
-
字符串匹配的KMP算法
作者: 阮一峰 原文链接:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?转载 2015-01-04 20:54:51 · 505 阅读 · 0 评论 -
澄清P问题、NP问题、NPC问题的概念
你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄清了。下面的内容都是在讲什么是P问题,什么是NP问题,什么是NPC问题,你如果不是很感兴趣就可以不看了。接转载 2015-01-04 19:54:37 · 574 阅读 · 0 评论 -
排序方法总结表
来自百度百科原创 2015-01-05 08:43:53 · 549 阅读 · 0 评论 -
C++ 归并排序算法实现
c++归并排序函数实现如下:void merge_sort(vector<int> &data, int start, int end) { if (start < end) { int mid = (start + end) / 2; merge_sort(data, start, mid); merge_sort(data, mid + 1原创 2016-04-07 14:22:44 · 644 阅读 · 0 评论 -
C++ 堆排序算法实现
C++ 堆排序函数实现如下:void heap_sort(vector<int> &data) { for (int i = (int)data.size() / 2; i >= 0; i--) { heap_adjust(data, i, (int)data.size()); } for (int i = (int)data.size() - 1; i >原创 2016-04-07 14:39:54 · 454 阅读 · 0 评论 -
C++ 快速排序实现
C++函数实现如下:void quick_sort(vector<int> &data, int low, int high) { if (low >= high) { return; } int left = low, right = high; int key = data[low]; while (left < right) {原创 2016-04-07 14:08:38 · 424 阅读 · 0 评论 -
c++ 大整数类
具体使用见main函数#include <iostream> #include <vector> #include <cmath> #include <string> #include <sstream> using namespace::std;class BigInteger { friend BigInteger big_abs(const BigInteger &a); fr原创 2016-04-16 10:05:25 · 1051 阅读 · 0 评论 -
全排列递归实现
#include <iostream> using namespace std;void printPermutation(string &s, int cur) { if (cur == s.size() - 1) { cout << s << endl; } for (int i = cur; i < s.size(); i++) { sw原创 2016-05-30 09:19:34 · 421 阅读 · 0 评论 -
C++ string split函数实现
使用了string的find函数和substr函数#include <iostream> #include <string> #include <vector> using namespace std;vector<string> split(string str, string pattern) { vector<string> result; str += pattern;原创 2016-06-01 09:27:56 · 794 阅读 · 0 评论