随笔分类 -  【数据结构和算法】

摘要:/*设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。一趟快速排序的算法是:1)设置两个变量I、J,排序开始的时候:I=0,J=N-1;2)以第一个数组元素作为关键数据,赋值给key,即 key=A[0];3)从J开始向前搜索,即由后开始向前搜索(J=J-1),找到第一个小于key的值A[J],并与A[I]交换;4)从I开始向后搜索,即由前开始向后搜索(I=I+1),找到第一个大于key的A[I],与A[J]交换;5)重复第3、4、5步,直到 I=J; (3, 阅读全文
posted @ 2011-11-24 12:28 hibernate3例子 阅读(146) 评论(0) 推荐(0)
摘要://非递归求斐波那契数列 #include<iostream>using namespace std;long f(int index){ if( index==1 || index == 2){ return 1; } long f1 = 1L; long f2 = 1L; long f = 0; for( int i = 0;i < index-2;i ++){ f = f1+f2; f1 = f2; f2 = f; } retu... 阅读全文
posted @ 2011-11-24 12:26 hibernate3例子 阅读(173) 评论(0) 推荐(0)
摘要://LCS算法,最长公共子序列 来自《算法导论》#include<iostream>#include<cstdlib>#include<cmath>#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(s2); int i,j; s[0][0]=0; for( i = 0;i <= m;i++){ s[i][0]=0; } for( j... 阅读全文
posted @ 2011-11-24 12:24 hibernate3例子 阅读(247) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <stdlib.h>//merge_sort -->合并排序/*自顶向下采用分治法进行自顶向下的算法设计,采用递归形式更为简洁.分治法的三个步骤1.分解:将当前区间一分为二,即求分裂点 mid=(low+high)/2;2.求解:递归地对两个子区间R[low..mid]和R[mid+1..high]进行归并排序;3.组合:将已排序的两个子区间R[low..mid]和R[mid+1..high]归并为一个有序的区间R[low..high]。递归的终结条件:子区间长度为1(一个记录自然有序)。*///一次归并过程v 阅读全文
posted @ 2011-11-22 21:38 hibernate3例子 阅读(207) 评论(0) 推荐(0)
摘要:今天在淘宝上买的《算法导论》拿到了,晚自习看了前两章,回来实现以下基本的插入排序,最坏情况下的时间复杂度T(n)=O(n2)。code:#include<stdio.h>//插入排序void insertionsort(int a[],int n){ int i,j,key; for( j = 1;j < n;j++){ key = a[j]; i = j-1; while( i >= 0 && a[i]>key){ a[i+1]=a[i]; i -= 1; } a[i+1]=key; } }int main(){ int a[]={5,2,4,6 阅读全文
posted @ 2011-11-21 22:05 hibernate3例子 阅读(113) 评论(0) 推荐(0)
摘要:/* 算法如下: 基姆拉尔森计算公式 W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 在公式中d表示日期中的日数+1,m表示月份数,y表示年数。 注意1:在公式中有个与其他公式不同的地方: 把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。注意2:在大多数天主教国家的日历中,在1752年没有9.3-9.13,在这一年的日历中9月2号后面直接就是9月14号,所以在计算某天是星期几的算法中要把这一特殊情况考虑在内。如果在在1752年9月3日之前 week = (d+2*m+3*... 阅读全文
posted @ 2011-11-17 19:13 hibernate3例子 阅读(334) 评论(0) 推荐(0)