- 博客(16)
- 问答 (1)
- 收藏
- 关注
原创 斐波拉契数列三种写法及比较
递归://递归 int Fib1(int a){ if(a<3){ return 1; }else{ return Fib1(a-1)+Fib1(a-2); }}此题递归的实质:二叉树由于没有中间值存储变量,致使每次计算都要重复进行。1)时间复杂度:O(2^N).2)空间复杂度:低.数组://数组int Fib2(int a){ i...
2019-04-26 23:13:54 790
原创 C实现辗转相除法
目标:求最大公约数方法:利用欧几里得算法(辗转相除法)思路:如果b=0,计算结束,a就是最大公约数否则,计算a除以b的余数,让a=b,而b=余数;回到第一步 。非递归:#include<stdio.h>int main(){ int a,b; int t;//余数 scanf("%d %d",&a,&b); printf("a=%d,b=...
2019-04-23 22:26:18 2568
原创 大整数四则运算
存储方式:规定:整数的高位存储在数组的高位,整数的低位存储在数组的低位。例如:235813,则d[0]=3,d[1]=1,d[2]=8...此方式以此类推。但注意:通常输入为字符串str[0]='2',str[1]='3',str[2]='5'...读入之后需要反转一下。加法运算(模板):#include <stdio.h>#include <string...
2019-04-23 21:10:18 607 3
原创 质因子分解
概念:所谓质因子分解是将一个正整数n写成一个或多个质数的乘积形式。例如:6=2*3,180=2*2*3*3*5,也可以写成指数形式,例如 180=2^2*3^2*5^1;你会发现最终会归结到若干个不同素数(质数)的乘积。注意:由于1本身不是素数,因此它没有质因子,下面针对大于1的正整数来说。这里提供2种质因子分解的代码,可根据要求选择,重点讲解方法(二)。方法(一):#inc...
2019-04-21 21:02:16 6344 3
原创 PATB1013数素数
令Pi表示第i个素数。现任给两个正整数M≤N≤10^4,请输出PM到PN的所有素数。输入格式:输入在一行中给出M和N,其间以空格分隔。输出格式:输出从PM到PN的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。输入样例:5 27输出样例:11 13 17 19 23...
2019-04-20 16:39:28 205
原创 素数的高效算法
素数最简单的判断方法是采用枚举,复杂度为O(n)。(这里不作解释)这里将介绍下列几点:1)素数判断,复杂度为O(√n)的原理及代码。2)素数表的获取。3)更为高效判断素数的"筛选法"。(一)素数判断这里介绍复杂度为O(√n)的原理:例:2~n-1中存在n的约数,不妨设为k,即n%k==0,那么由k*(n/k)==0,n/k也是n的一个约数,因此得到了k与n/k中一定满足:一个数小...
2019-04-20 13:30:34 3097
原创 sqrt()基础
注意sqrt()传入的参数应该为double类型并且返回的也是double类型。int sqr=(int)sqrt(1.0*n);
2019-04-20 11:27:02 624
原创 皇帝守财奴问题
皇帝不是穷人,在守财奴之中也有穷人,所以,有一些_____并不是_____.a.皇帝,皇帝b.守财奴,守财奴c.守财奴,皇帝d.皇帝,守财奴解答:p:这个人是皇帝q:这个人是穷人r:这个人是守财奴皇帝不是穷人:p->~q在守财奴之中也有穷人:∈x(x∈r^x∈q)分析过程:p->~q <=> q->~p,且∈x(x∈r^x∈q) ...
2019-04-20 10:37:54 577
原创 printf()格式
%3d 表示输出3位整型数, 不够3位右对齐%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为7,不够9位右对齐(这时候小数点算一位)。例:1.4-->_ _5.1%8s 表示输出8个字符的字符串, 不够8个字符右对齐。%04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度%6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于...
2019-04-14 21:06:33 424
原创 希尔排序
希尔排序也是基于插入排序的一种策略,两个代码相似插入排序:#include <stdio.h>int main(){ int a[]={1,10,5,3,8,0}; for(int i=1;i<6;i++){ int temp=a[i],j=i; while(j>=1&&temp<a[j-1]){ a[j]=a[j-1];...
2019-04-14 09:17:30 130
原创 排序的疑惑
内部排序大致有:-插入式排序:直接插入排序,希尔排序-交换式排序:气泡法、快速排序法-选择式排序:直接选择排序、锦标赛排序、堆排序-归并排序-基数排序什么叫排序算法的稳定性?如果排序算法,不会改变相同排序码的数据元素的前后次序。该算法称为稳定的排序算法。否则该算法就是不稳定的。如:1 3 5 5' 排序后变为 1 3 5' 5 称为不稳定。什么叫内部排序,外部排序?内部排序...
2019-04-03 21:12:57 120
原创 随机数rand()
只需知道产生随机数需要加上“srand((unsigned)time(NULL))“语句,并且头文件包括2个#include <stdlib.h>和#include<time.h>即可。#include <stdio.h>#include <stdlib.h>#include<time.h>int main(){ //sra...
2019-04-03 20:28:20 1620
原创 快速排序时间复杂度和不稳定性
这里提供讲得超级清楚明白的视频!!!力荐排序视频(这个都还看不懂就别学了)提供源代码,然后这里只讨论快速排序不稳定性和时间复杂度的问题。源代码:#include <stdio.h>//划分int Partition(int a[],int Left,int Right){ int L=Left; int H=Right; int temp=a[L]; //临时...
2019-04-03 19:41:46 966
原创 2-路归并排序(非递归)
此篇只说此方法排序的难点和易错点。#include <stdio.h>//合并过程 int maxn=1000; void merge(int A[],int L1,int R1,int L2,int R2){ int i=L1,j=L2; //临时数组 int temp[maxn], index=0; while(i<=R1&&j<...
2019-04-02 22:13:39 489 1
原创 图解:2-路归并排序(递归实现 )
划分过程://划分过程void mergeSort(int A[],int left,int right){ void merge(int A[],int L1,int R1,int L2,int R2); //声明 if(left<right){ int mid=(left+right)/2; mergeSort(A,left,mid); mergeSort(...
2019-04-02 13:16:13 1619
空空如也
jabc执行和提交的区别
2019-06-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人