- 博客(8)
- 收藏
- 关注
原创 归并排序
一、归并排序的基本思想 将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2个长度为2的有序表;将这些有序序列再次归并,得到n/4个长度为4的有序序列;如此反复进行下去,最后得到一个长度为n的有序序列。综上可知:归并排序其实要做两件事:(1)“分解”——将序列每次折半划分。(2)“合并”——将划分后的序列段两两合并后排序
2017-04-05 21:35:37 151
原创 Strassen矩阵乘法算法实现
voidstrassen(int a[N][] , int b[N][] , int c[N][], inttopX,inttopY,int n) { if (n == 2) { 直接相乘 结果存放在 c中;返回; } 分块(a11,a12,a21,a22
2016-05-10 20:03:10 400
原创 分治法解决大整数乘法
#define SIGN(A) ((A > 0) ? 1 : -1) int IntegerMultiply(int X, int Y, int N) { int sign = SIGN(X) * SIGN(Y); int x = abs(X); int y = abs(Y); if((0 == x) || (0 == y))
2016-05-10 19:49:27 622
原创 快速排序
快速排序——使用分治法把一个串行分为两个子串行算法步骤:1.从数列中挑出一个元素,称为“基准”; 2.重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面,(相同的任意边)在这个分区退出之后,该基准处于数列的中间位置,这个称为Patition操作 3.递归地(recursive)
2016-04-12 15:50:52 240
原创 全排列问题
//排列问题(固定位置)void Swap(int &m,int &n){int temp = m;m = n;n = temp;}void Perm(int list[],int begin,int end){if(begin == end){printf("{ ");for(int i=0;iprintf("%d ",list[i]);}
2016-03-24 21:43:01 204
原创 阶乘函数和Fibonacci数列
//阶乘函数int factorial(int n){if(nreturn n * factorial(n-1);}//Fibonacci数列int fibonacci(int n){if(nif(nreturn fibonacci(n-1) + fibonacci(n-2);}
2016-03-24 21:34:55 234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人