![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
qq_32913921
这个作者很懒,什么都没留下…
展开
-
归并排序
#include<stdio.h>int a[10000], b[10000];void mergearray(int a[], int first, int mid, int last, int temp[])//temp数组用于临时储存另外一组数{ int i = first, j = mid + 1; int k = 0; while(i <= mid && j <原创 2016-02-19 23:06:09 · 151 阅读 · 0 评论 -
计数排序
#include <stdio.h> //计数排序要求输入的元素是0到k之间void countSort(int a[], int b[], int array_size, int k)//k是a数组中最大的数{ int c[k+1], i;转载 2016-02-19 23:07:02 · 304 阅读 · 0 评论 -
快速排序
#include <cstdio>void qsort(int a[], int l, int r){ //if(l >= r) return ; if(l < r) { int i = l, j = r, key = a[l];//中值 while (i < j) { while(i < j && a原创 2016-02-19 23:08:14 · 255 阅读 · 0 评论 -
全排列
//未去重全排列#include <iostream>#include <cstdio>using namespace std;void func(int a[], int m_begin, int m_end)//m_begin表示当前选到第几个了,m_end表示总共多少个数{ int i; if(m_begin + 1 == m_end){ for(i =原创 2016-02-19 23:09:34 · 267 阅读 · 0 评论 -
c++STl的全排列
STL有一个函数next_permutation(),它的作用是如果对于一个序列,存在按照字典排序后这个排列的下一个排列,那么就返回true且产生这个排列,否则返回false。#include <cstdio>#include <iostream>#include <algorithm>using namespace std;void permutation(int a[], int len原创 2016-02-19 23:10:16 · 256 阅读 · 0 评论 -
kmp
例如:模式串如果是: A B C D A B Dnext数组: -1 0 0 0 0 1 2例如:如果匹配到D失败了就通过next数组递归到前面的C. 用next数组来记录前面已经匹配成功过的信息,如:尽管退回到C了但前面还是有AB是已经匹配成功的next[j]的值(也就是k)表示,当P[j] != T[i]时,j指针的下一步移动位置。#in原创 2016-02-19 23:04:00 · 165 阅读 · 0 评论