
【algorithms】
枫朗
keep calm and carry on
展开
-
冒泡排序
#includeusing namespace std;#define max 9int main(){ int Array[max]; /*for ( int i = 0;i < max;i ++) { Array[i] = max - i; }*/ cout <<"原始数据:";原创 2011-11-12 18:48:42 · 633 阅读 · 0 评论 -
非递归求斐波那契数列
//非递归求斐波那契数列 #includeusing namespace std;long f(int index){ if( index==1 || index == 2){ return 1; } long f1 = 1L; long f2 = 1L; long f = 0; for原创 2011-11-24 12:26:01 · 730 阅读 · 0 评论 -
最长公共子序列LCS
//LCS算法,最长公共子序列 来自《算法导论》#include#include#include#define N 105char s[N+1][N+1];using namespace std;int LCS( const char*s1,const char*s2){ int m = strlen(s1); int n = strlen(s原创 2011-11-24 12:24:37 · 656 阅读 · 0 评论 -
合并排序
#include #include //merge_sort -->合并排序/*自顶向下采用分治法进行自顶向下的算法设计,采用递归形式更为简洁.分治法的三个步骤1.分解:将当前区间一分为二,即求分裂点 mid=(low+high)/2;2.求解:递归地对两个子区间R[low..mid]和R[mid+1..high]进行归并排序;3.组合:将已排序的两个子区间R[原创 2011-11-22 21:38:56 · 682 阅读 · 0 评论 -
快速排序
/*设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。一趟快速排序的算法是:1)设置两个变量I、J,排序开始的时候:I=0,J=N-1;2)以第一个数组元素作为关键数据,赋值给key,即 key=A[0];3)从J开始向前搜索,即由后开始向原创 2011-11-24 12:28:00 · 614 阅读 · 0 评论 -
插入排序
今天在淘宝上买的《算法导论》拿到了,晚自习看了前两章,回来实现以下基本的插入排序,最坏情况下的时间复杂度T(n)=O(n2)。 code: #include//插入排序void insertionsort(int a[],int n){ int i,j,key; for( j = 1;j < n;j++){ key = a[j]; i = j-1;原创 2011-11-21 22:05:21 · 840 阅读 · 2 评论