Ⅰ 演算法的描述方式有幾種分別是什麼
描述演算法的方法有多種,常用的有自然語言、結構化流程圖、偽代碼和PAD圖等,其中最普遍的是流程圖,分思法。
流程圖(Flow Chart)使用圖形表示演算法的思路是一種極好的方法,因為千言萬語不如一張圖。流程圖在匯編語言和早期的BASIC語言環境中得到應用。相關的還有一種PAD圖,對PASCAL或C語言都極適用。
(1)演算法的常用描述方法擴展閱讀:
演算法可以宏泛的分為三類:
一、有限的,確定性演算法 這類演算法在有限的一段時間內終止。他們可能要花很長時間來執行指定的任務,但仍將在一定的時間內終止。這類演算法得出的結果常取決於輸入值。
二、有限的,非確定演算法 這類演算法在有限的時間內終止。然而,對於一個(或一些)給定的數值,演算法的結果並不是唯一的或確定的。
三、無限的演算法 是那些由於沒有定義終止定義條件,或定義的條件無法由輸入的數據滿足而不終止運行的演算法。通常,無限演算法的產生是由於未能確定的定義終止條件。
Ⅱ 什麼是演算法,常用的演算法描述有哪些
演算法的描述方式主要有自然語言,流程圖,偽代碼等,它們的優勢和不足可以簡單地歸納如下:1、自然語言優勢:自然語言描述的演算法通俗易懂,不用專門的訓練不足:a.由於自然語言的歧義性,容易導致演算法執行的不確定性.b.自然語言的語句一般較長,導致描述的演算法太長.c.當一個演算法中循環和分歧較多時就很難清晰地表示出來.d.自然語言表示的演算法不便翻譯成計算機程序設計語言.2、流程圖優勢:流程圖描述的演算法清晰簡潔,容易表達選擇結構,它不依賴於任何具體的計算機和計算機程序設計語言,從而有利於不同環境的程序設計.不足:不易書寫,修改起來比較費事,可以藉助於專用的流程圖製作軟體來提升繪制和修改.3、偽代碼優勢:偽代碼迴避了程序設計語言的嚴格、煩瑣的書寫格式,書寫方便,同時具備格式緊湊,易於理解,便於向計算機程序設計語言過渡的優點.不足:由於偽代碼的種類繁多,語句不容易規范,有時會產生誤讀.
Ⅲ 演算法的四種描述方法是什麼
#include<stdio.h>
#include<time.h>
#include<math.h>
#include<malloc.h>
void BubbleSort(int *L,int N)
{ //冒泡
int i,j;
int t;
for(i=1;i<=N;i++)
{
for(j=N;j>i;j--)
if(L[j]<L[j-1])
{
t=L[j];
L[j]=L[j-1];
L[j-1]=t;
}
}
}
int SelectMinKey(int *L,int N,int n)
{
int i,min=n;
for(i=n+1;i<=N;i++)
if(L[i]<L[min])
min=i;
return min;
}
void SelectSort(int *L,int N)
{ //選擇
int i,j;
int t;
for(i=1;i<N;i++)
{
j=SelectMinKey(L,N,i);
if(i!=j)
{
t=L[i];
L[i]=L[j];
L[j]=t;
}
}
}
void InsertSort(int *L,int N)
{ //插入
int i,j;
for(i=2;i<=N;i++)
{
if(L[i]<L[i-1])
{
L[0]=L[i];
L[i]=L[i-1];
for(j=i-2;L[0]<L[j];j--)
L[j+1]=L[j];
L[j+1]=L[0];
}
}
}
void ShellInsert(int *L,int N, int dk)
{ // 對順序表L作一趟希爾插入排序。本演算法對演算法10.1作了以下修改:
// 1. 前後記錄位置的增量是dk,而不是1;
// 2. r[0]只是暫存單元,不是哨兵。當j<=0時,插入位置已找到。
int i,j;
for(i=dk+1;i<=N;++i)
if(L[i]<L[i-dk])
{ // 需將L.r[i]插入有序增量子表
L[0]=L[i]; // 暫存在L.r[0]
for(j=i-dk;(j>0&&L[0]<L[j]);j-=dk)
L[j+dk]=L[j]; // 記錄後移,查找插入位置
L[j+dk]=L[0]; // 插入
}
} // ShellInsert
void ShellSt(int *L,int N, int dlta[], int t)
{ // 演算法10.5
// 按增量序列dlta[0..t-1]對順序表L作希爾排序。
for(int k=0;k<t;++k)
ShellInsert(L,N, dlta[k]); // 一趟增量為dlta[k]的插入排序
} // ShellSort
void ShellSort(int *L,int N)
{ //希爾
int t=(int)log(N);
int k,*dlta;
dlta=(int*)malloc(t*4); //產生增量序列
for(k=0;k<t;k++)
dlta[k]=(int)pow(2,t-k)-1;
ShellSt(L,N,dlta,t);
}
int main()
{
int N=250;
int i,j,k;
int t;
int ti[16];
int *L;
srand(time(NULL));
printf("長度\t|冒泡\t|選擇\t|插入\t|希爾\n");
printf("--------+-------------------------------------------------------------");
for(j=0;N<100000;j++)
{
L=(int *)malloc((N+1)*4);
t=0;
for(i=1;i<=N;i++)
L[i]=rand();
ti[t++]=clock();
BubbleSort(L,N);
ti[t++]=clock();
for(i=1;i<=N;i++)
L[i]=rand();
ti[t++]=clock();
SelectSort(L,N);
ti[t++]=clock();
for(i=1;i<=N;i++)
L[i]=rand();
ti[t++]=clock();
InsertSort(L,N);
ti[t++]=clock();
for(i=1;i<=N;i++)
L[i]=rand();
ti[t++]=clock();
ShellSort(L,N);
ti[t++]=clock();
printf("\n%d\t",N);
for(k=0;k<4;k++)
printf("| %d\t",(ti[2*k+1]-ti[2*k]));
N*=5;
}
printf("\n\n");
}
//這是我們當年學數據結構時我自己寫的,給你改了一下,輸出是對隨機產生一些數,對四種演算法進行比較,有問題可以hi我啊
另外,站長團上有產品團購,便宜有保證
Ⅳ 計算機演算法的三種描述方法
演算法是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制.
特徵:有窮性 確定性 可行性
Ⅳ 簡述演算法的各種表示形式
最低0.27元/天開通網路文庫會員,可在文庫查看完整內容>
原發布者:lsqlsy123
演算法的表示方法演算法的常用表示方法有如下三種:1、使用自然語言描述演算法2、使用流程圖描述演算法3、使用偽代碼描述演算法我們來看怎樣使用這3種不同的表示方法去描述解決問題的過程,以求解sum=1+2+3+4+5……+(n-1)+n為例。第1種:使用自然語言描述從1開始的連續n個自然數求和的演算法①確定一個n的值;②假設等號右邊的算式項中的初始值i為1;③假設sum的初始值為0;④如果i≤n時,執行⑤,否則轉出執行⑧;⑤計算sum加上i的值後,重新賦值給sum;⑥計算i加1,然後將值重新賦值給i;⑦轉去執行④;⑧輸出sum的值,演算法結束。從上面的這個描述的求解過程中,我們不難發現,使用自然語言描述演算法的方法雖然比較容易掌握,但是存在著很大的缺陷。例如,當演算法中含有多分支或循環操作時很難表述清楚。另外,使用自然語言描述演算法還很容易造成歧義(稱之為二義性),譬如有這樣一句話——「武松打死老虎」,我們既可以理解為「武松/打死老虎」,又可以理解為「武松/打/死老虎」。自然語言中的語氣和停頓不同,就可能使他人對相同的一句話產生不同的理解。又如「你輸他贏」這句話,使用不同的語氣說,可以產生3種截然不同的意思,同學們不妨試試看。為了解決自然語言描述演算法中存在著可能的二義性,我們提出了第2種描述演算法的方法——流程圖。第2種:使用流程圖描述從1開始的連續n個自然
Ⅵ 演算法的描述工具有哪五種
一、流程圖
流程圖是描述代碼的一種很好的工具,利用流程圖,可以很好的表現出秩序執行過程中的三種基本結構組成—順序結構、選擇結構、循環結構等。
二、偽代碼
偽代碼是一種介於我們編寫的由機器執行的語言,但是又不受語法約束的代碼。這種語言時無法被機器執行的,但是和流程圖一樣,也是一種常用的描述演算法的方法。
三、自然語言
演算法的第三種表述,就是使用自然語言進行描述。
Ⅶ 常用的演算法描述方法有哪些
有三種 分別是自然語言描述、流程圖描述、偽代碼描述
Ⅷ 演算法的描述方式有幾種分別是什麼
描述演算法的方法有多種,常用的有自然語言、結構化流程圖、偽代碼和PAD圖等,其中最普遍的是流程圖,分思法。
流程圖(Flow Chart)使用圖形表示演算法的思路是一種極好的方法,因為千言萬語不如一張圖。流程圖在匯編語言和早期的BASIC語言環境中得到應用。相關的還有一種PAD圖,對PASCAL或C語言都極適用。
要素:
數據對象的運算和操作:計算機可以執行的基本操作是以指令的形式描述的。一個計算機系統能執行的所有指令的集合,成為該計算機系統的指令系統。一個計算機的基本運算和操作有如下四類:
1、算術運算:加減乘除等運算。
2、邏輯運算:或、且、非等運算。
3、關系運算:大於、小於、等於、不等於等運算。
4、數據傳輸:輸入、輸出、賦值等運算。
以上內容參考:網路-演算法