算法
steph_curry
这个作者很懒,什么都没留下…
展开
-
交换排序之冒泡排序与快速排序
冒泡排序: 基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。 #include using namespace std; void swap(int &a,int &b)//交换元素 { int temp=a; a=b; b=t转载 2017-12-22 10:59:31 · 245 阅读 · 0 评论 -
插入排序之之简单插入排序和希尔排序
#include using namespace std; void insert_sort(int a[],int n) { for(int i=1;i<n;i++)//从第二个数开始 { if(a[i]<a[i-1]) { int j=i-1; int x=a[i];//待排序数 a[i]=a[i-1]; while(x<a[j])//只要前面的数大于待转载 2017-12-22 10:34:32 · 217 阅读 · 0 评论 -
选择排序之简单选择排序和堆排序
简单选择排序基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。 #include using namespace std; void swap(int &a,int &b)//交换元素 { int t转载 2017-12-22 16:36:47 · 258 阅读 · 0 评论 -
归并排序
归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。 归并排序示例: 合并方法: 设r[i…n]由两个有序子表r[i…m]和r[m+1…n]组成,两个子表长度分别为n-i +1、n-m。 j=m+1;k=i;i=i; //置两个子表的起始转载 2017-12-22 19:34:41 · 154 阅读 · 0 评论 -
字符串匹配之KMP算法
注:本文大部分内容转载于https://www.cnblogs.com/c-cloud/p/3224788.html。 任务是:举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 1. 首先,字符串"BBC ABCDAB ABCDABCDABDE"的第一个字符与搜索词"ABCDABD"的第一个字转载 2017-12-29 17:54:36 · 165 阅读 · 0 评论