![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
亭台六七座
大圣,此去欲何?踏南天,碎凌霄。若一去不回...?便一去不回!
展开
-
swap三种实现方法
void swap1(int &a,int &b){ int t=a; a=b; b=t;}void swap2(int &a,int &b){ a=a^b; b=a^b; a=a^b;}void swap3(int *a,int *b){ *a=*a+*b; *b=*a-*b; *a=*a-原创 2017-07-15 07:40:12 · 1025 阅读 · 0 评论 -
大数卡特兰数
[cpp] view plain copyint a[105][105]; //大数卡特兰数 int b[105]; //卡特兰数的长度 void catalan() //求卡特兰数 { int i, j, len, carry, temp; a[1][0] = b转载 2017-10-20 19:54:23 · 330 阅读 · 0 评论 -
N皇后问题
点击打开链接[cpp] view plain copy# include # include int b[25],c[25],d[25],count;; void find(int n,int cur) { int i; if(cur==n) { coun转载 2017-10-20 19:53:28 · 311 阅读 · 0 评论 -
第一次用 stable_sort
点击打开链接[cpp] view plain copy# include # include # include using namespace std; struct DNA { char a[55]; int num; }s[105]; int fun(int转载 2017-10-20 19:52:44 · 346 阅读 · 0 评论 -
rmq模板
[cpp] view plain copy#include #include #include #define M 50010 int mx[M][17],mi[M][17],d[M]; int n,t; int min(int a,int b) { return a} int max(int转载 2017-10-20 19:51:30 · 244 阅读 · 0 评论 -
某区间内1的数量
点击打开链接 解法二告诉我们1~ N中“1”的个数跟最高位有关,那我们换个角度思考,给定一个N,我们分析1~N中的数在每一位上出现1的次数的和,看看每一位上“1”出现的个数的和由什么决定。 1位数的情况: 在解法二中已经分析过,大于等于1的时候,有1个,小于1就没有。 2位数的情况: N=13,个位数出现的1的次数转载 2017-10-20 19:50:28 · 358 阅读 · 0 评论 -
Fibonacci数列
求高位时算法分析:f(n)= (1/sqrt(5))*pow((1+sqrt(5))/2,n)- (1/sqrt(5))*pow((1-sqrt(5))/2,n);这个题目就是用到这个公式,化简f(n)=n*log10((1+sqrt(5))/2)-log10(sqrt(5))+log10(1-((1-sqrt(5))/(1+sqrt(5)))^n)后面红色部分是无穷小量,可以省略。于转载 2017-10-20 19:48:35 · 168 阅读 · 0 评论 -
AES算法
[cpp] view plain copy# include # include # include using namespace std; int sBox[] ={ 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x7转载 2017-10-20 19:47:53 · 640 阅读 · 0 评论 -
RAS加密
一、实验目的掌握并实现RSA算法。二、实验内容利用C\C++实现RSA算法的加、解密运算。具体包括:(1) a模n的逆元(2) 计算mk mod n结果(要避免出现天文数字)(3) n=43*59=2537 e=13运用(1)和(2)的结果将消息public加密和解密. 提示:将明文消息代换为数字按两个字母分组,加密转载 2017-10-20 19:46:54 · 628 阅读 · 0 评论 -
bitmap应用及实现(哈希表)
当实现时间复杂度优化的时候,经常会用到hash表来存储一些数据,然后查找,来提高时间复杂度。如果直接设置int arr[]数组,对于大数据来说,会需要很大的空间来存储,严重影响效率。而bitmap是用位来存储数据的:如果只是表示有无,每个数据分配1位;如果表示多个,可能需要给每个数据分配多位(例如统计大数据中不重复的个数,用0、1、2来表示状态)bitmap在对数据进行排序时,其复杂度为O转载 2017-10-20 19:46:02 · 801 阅读 · 0 评论 -
算法之 求最小最大数
题目描述输入N个(N输入描述:输入包括多组测试用例,每组测试用例由一个整数N开头,接下去一行给出N个整数。输出描述:输出包括两个整数,为给定N个数中的最大值与最小值。示例1输入51 2 3 4 533 7 8输出5 18 3C++代码:#includeusing namespace转载 2017-08-31 00:40:29 · 526 阅读 · 0 评论 -
字符串匹配算法KMP算法
字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上转载 2017-07-31 10:54:46 · 185 阅读 · 0 评论 -
查找算法之二分查找
/*=================================================================================================================================二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不原创 2017-07-20 12:46:55 · 210 阅读 · 0 评论 -
排序算法之选择排序
/*======================================================================================选择排序:首先,找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。再次,在剩下的元素中 找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将原创 2017-07-20 12:45:02 · 217 阅读 · 0 评论 -
排序算法之希尔排序
/*======================================================================================希尔排序:希尔排序是在插入排序的基础上升级而来======================================================================================原创 2017-07-20 12:44:15 · 248 阅读 · 0 评论 -
排序算法之冒泡排序
排序算法之冒泡排序: int array[10] = {15, 225, 34, 42, 52, 6, 7856, 865, 954, 10}; int i, j; for (i = 0; i < 10; i++) { //每一次由底至上地上升 for (j = 9; j > i; j--)转载 2017-07-19 18:12:04 · 211 阅读 · 0 评论 -
排序算法之插入排序
/*======================================================================================插入排序:对于 0 到 N-1 之间的每一个 i,将 a[i] 与 a[0] 到 a[i-1] 中比它小的所有元素依次有序地交换。在索引i由左向右变化的过程中,它左侧的元素总是有序的,所以当i到达数组的右端时排序就转载 2017-07-20 12:39:32 · 160 阅读 · 0 评论 -
求欧拉函数模板
点击打开链接 view plain copyint eular(int n) { int s,i; s=n; for(i=2;i*i { if(n%i==0) { n/=i; s=s/i;转载 2017-10-20 19:55:31 · 198 阅读 · 0 评论