數(shù)據(jù)的描述+操作的描述(data?structure + algorithm)
教材說還得有? 程序設(shè)計方法+語言工具和環(huán)境?
要學(xué)基本算法得看看數(shù)據(jù)結(jié)構(gòu)了汤徽,學(xué)完這個我就開始玩數(shù)據(jù)結(jié)構(gòu)域算法那本書被丧。
2.1算法的概念
算術(shù)的和解決問題的。都需要數(shù)據(jù)模型的抽取和構(gòu)建汗唱。
2.2 簡單算法舉例
求1*2*3*4*5不看書寫一寫
三種,直接計算、循環(huán)未荒、遞歸
#include
#include
int Mul(int n)
{
??? if(n==1)
??????? return 1;
??? else
??????? return n*Mul(n-1);
}
// The result of1*2*3*4*5
int main()
{
??? int result=1;
??? int i=1;
??? int mul_end=5;
??? //F1
??? printf("F1----The result is? %d \n",1*2*3*4*5);
??? //F2
??? for(i=1;i<=5;i++)
??? {
??????? result=result*i;
??? }
??? printf("F2----The result is? %d \n",result);
??? //F3
??? result=Mul(mul_end);
??? printf("F3----The result is? %d \n",result);
??? return 0;
}
求50個學(xué)生成績中大于80分的成績輸出
#include
#include
#define MAXSIZE 50
int main()
{
??? //初始化學(xué)生成績
??? int student_score[MAXSIZE];
??? int i=0;
??? int count=0;
??? for(i=0; i
??? {
??????? student_score[i]=rand() % 100;
??? }
??? for(i=0; i
??? {
???????printf("%d\t",student_score[i]);
??????? if((i+1)%10==0)
??????? {
??????????? printf("\n");
??????? }
??? }
???printf("---------------------------------\n");
??? for(i=0; i
??? {
??????? if(student_score[i]>=80)
??????? {
???????????printf("%d\t",student_score[i]);
??????????? count++;
??????????? if((count)%5==0)
??????????? {
??????????????? printf("\n");
??????????? }
??????? }
??? }
??? return 0;
}
判斷2000-2500中的閏年
Tips:4年一閏,百年不閏及志,400再閏
#include
#include
//判斷2000-2500的年哪些是閏年----閏年能被4整除片排、不能被100整除;能被100和能被400整除
int main()
{
??? int year=2000;
??? for(year=2000; year<=2500; year++)
??? {
???????if(((year%4==0)&&(year%100!=0))||((year%100==0)&&(year%400==0)))
??????? {
?? ?????????printf("%d\n",year);
??????? }
??? }
??? return 0;
}
求1-1/2+1/3-1/4+...-1/99+1/100 ? ?
#include
#include
int main()
{
??? int sum=1;
??? int i=1;
??? int sigh=1;
??? int temp;
??? for(i=1; i<=100; i++)
??? {
??????? temp=sigh*(1/i);
??????? sum=sum+temp;
??????? sigh=(-1)*sigh;
??? }
??? printf("The result is %d\n",sum);
??? return 0;
}
對于一個大于或者等于3的正整數(shù)速侈,判斷它是不是一個素數(shù)(只能被1和自己整除的數(shù))
#include
#include
#include
int main()
{
??? int n;
??? int i=2;
??? int m;
??? scanf("%d",&n);
??? if(n<3)
??? {
??????? printf("Please input a numberwhich is above three!\n");
??? }
??? else
??? {
??????? m=sqrt(n);
??????? for(i=2; i<=m; i++)
??????? {
??????????? if(n%i==0)
??????????? {
??????????????? printf("不是素數(shù)!\n");
??????????????? break;
??????????? }
??? ????}
??????? if(i>m)
??????? {
??????????? printf("是素數(shù)!\n");
??????? }
??? }
??? return 0;
}
2.3 算法的特性
有窮性率寡,就是的能完事
確定性,每步得確定锌畸,不能天馬行空
0或多個輸入
1或多個輸出
有效性
必須會設(shè)計算法勇劣,并根據(jù)算法寫出程序,基本功啊
2.4 怎樣表示一個算法
2.4.1 自然語言,估計今年能用來吹牛用比默,一般不用幻捏,不會實現(xiàn)只會說的人,呵了個呵命咐。
2.4.2 流程圖
本來想查查用啥工具畫流程圖好(傳統(tǒng)的肯定是visio了)篡九,不過還有意外收獲,word2010的smartart好多有意思的圖形啊醋奠。
偽代碼頁可以表示流程圖
計算機語言表示頁就是代碼了榛臼,不會寫的時候可以先看懂代碼,學(xué)會讀代碼窜司,考研的題目里很大一部分就是這個沛善。
2.5 結(jié)構(gòu)化程序設(shè)計方法
自頂向下
逐步細化,不能一口吃個胖子
模塊化設(shè)計
結(jié)構(gòu)化編碼