導航:首頁 > 源碼編譯 > 演算法可以上機運行嗎

演算法可以上機運行嗎

發布時間:2022-04-22 14:50:29

❶ 一道編程演算法問題

你要求的應該是兩個數的最小公倍數吧,要是它們的公倍數的話,有無窮多個
1.
#include<stdio.h>
main()
{
int m,n,p;
scanf("%d,%d",&m,&n);
p = m*n;
while(n!=0) //求出它們的最大公約數
{
int r=m%n;
m=n;
n=r;
}
printf("MINGongBeiShu:%d\n",p/m); //最小公倍數=這兩個數的乘積÷它們的最大公約數
}

其實不必要想上位元兄那樣去理會它們的大小,這演算法與它們的大小順序是無關的,你可以上機運行一下,結果是對的,你可以舉例子來分析一下,這對你的學習有很大的幫助!

2.
#include<stdio.h>
main()
{
int max,min,i;
int arr[10]; //定義數組,存儲輸入的那十個數
for(i=0;i<10;i++)
{
scanf("%d",arr[i]);
}
max=min=arr[0];
for(i=1;i<10;i++)
{
if(max<arr[i])
max=arr[i];
else if(min>arr[i])
min = arr[i];
else
continue;
}
printf("max = %d;\tmin = %d\n",max.min);
}

你上機運行一下,好像上一位的回答有錯誤!!

❷ 學數據結構的時候,那些演算法設計可以上機實操出結果的嗎

演算法設計當然可以在上機出結果的
先學C語言,看數據結構的演算法設計當然會方便很便(不過也看這個演算法設計是用什麼語言寫的呀)

❸ 關於演算法是時間復雜度,對數階比指數階效率高嗎

時間復雜度

(1)時間頻度

一個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機運行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且一個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。一個演算法中的語句執行次數稱為語句頻度或時間頻度。記為T(n)。演算法的時間復雜度是指執行演算法所需要的計算工作量。

(2)時間復雜度
在剛才提到的時間頻度中,n稱為問題的規模,當n不斷變化時,時間頻度T(n)也會不斷變化。但有時我們想知道它變化時呈現什麼規律。為此,我們引入時間復雜度概念。

一般情況下,演算法中基本操作重復執行的次數是問題規模n的某個函數,用T(n)表示,若有某個輔助函數f(n),使得當n趨近於無窮大時,T(n)/f(n)的極限值為不等於零的常數,則稱f(n)是T(n)的同數量級函數。記作T(n)=O(f(n)),稱O(f(n)) 為演算法的漸進時間復雜度,簡稱時間復雜度。

在各種不同演算法中,若演算法中語句執行次數為一個常數,則時間復雜度為O(1),另外,在時間頻度不相同時,時間復雜度有可能相同,如T(n)=n^2 3n 4與T(n)=4n^2 2n 1它們的頻度不同,但時間復雜度相同,都為O(n^2)。

按數量級遞增排列,常見的時間復雜度有:

常數階O(1),對數階O(log2n)(以2為底n的對數,下同),線性階O(n),

線性對數階O(nlog2n),平方階O(n^2),立方階O(n^3),...,

k次方階O(n^k),指數階O(2^n)。隨著問題規模n的不斷增大,上述時間復雜度不斷增大,演算法的執行效率越低。

演算法的時間性能分析

(1)演算法耗費的時間和語句頻度

一個演算法所耗費的時間=演算法中每條語句的執行時間之和

每條語句的執行時間=語句的執行次數(即頻度(Frequency Count))×語句執行一次所需時間

演算法轉換為程序後,每條語句執行一次所需的時間取決於機器的指令性能、速度以及編譯所產生的代碼質量等難以確定的因素。

若要獨立於機器的軟、硬體系統來分析演算法的時間耗費,則設每條語句執行一次所需的時間均是單位時間,一個演算法的時間耗費就是該演算法中所有語句的頻度之和。
求兩個n階方陣的乘積 C=A×B,其演算法如下:

# define n 100 // n 可根據需要定義,這里假定為100

void MatrixMultiply(int A[a],int B [n][n],int C[n][n])

{ //右邊列為各語句的頻度

int i ,j ,k;

(1) for(i=0; i

❹ 何為c++演算法的時間性能

你問的時間性能應該是指時間復雜度

一個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機運行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且一個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。一個演算法中的語句執行次數稱為語句頻度或時間頻度。記為T(n)。

按數量級遞增排列,常見的時間復雜度有:
常數階O(1),對數階O(log2n),線性階O(n),
線性對數階O(nlog2n),平方階O(n^2),立方階O(n^3),...,
k次方階O(n^k), 指數階O(2^n) 。隨著問題規模n的不斷增大,上述時間復雜度不斷增大,演算法的執行效率越低。

❺ 數據結構的演算法例子如何上機去驗證

你好,對於數據結構初學者來說,一般都會覺得上機驗證演算法比較困難。因為大家有個共同的誤區,認為書上的演算法直接可以編譯運行。
實際上,數據結構給的演算法例子,很多是偽代碼,是需要修改為實際可執行的代碼才能編譯通過並運行的。如果修改成語法上,邏輯上正確的,可編譯運行的代碼,就要考驗你的編程功底了,而這一點就是初學者體會到的難點。
希望對你有幫助~

❻ 用類c語言描寫的演算法能直接在計算機上運行嗎

要看是否符合語法規則啊。如果嚴格符合語法規則,當然可以直接運行。

❼ 如何使演算法在計算機上運行

演算法只是一種編程的思想。要把你演算法的功能表現出來還需要使用工具:
運行環境
編程語言
對應的編譯器

用編程語言翻譯你的演算法成編譯器可以認得的語言
用編譯器編譯,也就是翻譯成可以讓運行環境可以認得的語言。
一般運行環境可以認得的語言就是機器語言。比如用vc編寫的代碼,編譯出程序。
但有些時候不是的,比如用java語言寫的代碼,java編譯器編譯出的程序是不能直接給機器運行的,而是給java 虛擬機去解釋成機器語言然後給機器執行

❽ 演算法在什麼東西上運行

演算法是抽象的東西。簡單說是計算機解決問題的方法。
演算法不能運行,只能通過程序代碼來實現、體現。
至於程序代碼,在編輯器中編輯完成後,要經過編譯器的編譯,生產應用程序(exe文件)然後運行計算結果
演算法每種編程語言都有,而每種編程語言都有不同的編譯器。至於你用哪種就不得而知了。

❾ 關於演算法時間復雜度分析的疑問

誰跟你說的分析時間復雜度是用比較次數來衡量的?
一個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機運行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且一個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。一個演算法中的語句執行次數稱為語句頻度或時間頻度。記為T(n)。
一般情況下,演算法的基本操作重復執行的次數是模塊n的某一個函數f(n),因此,演算法的時間復雜度記做:T(n)=O(f(n))
分析:隨著模塊n的增大,演算法執行的時間的增長率和f(n)的增長率成正比,所以f(n)越小,演算法的時間復雜度越低,演算法的效率越高。
在計算時間復雜度的時候,先找出演算法的基本操作,然後根據相應的各語句確定它的執行次數,再找出T(n)的同數量級(它的同數量級有以下:1,Log2n ,n ,nLog2n ,n的平方,n的三次方,2的n次方,n!),找出後,f(n)=該數量級,若T(n)/f(n)求極限可得到一常數c,則時間復雜度T(n)=O(f(n))

一般情況時間復雜度是以你演算法中最復雜的那個循環來看的,
比如有個
for(i = 0;i < n;i ++)
{
for(j = 0;j < n;j ++)
{
...

}
}
後面不管他有多少個單獨的
for(i = 0;i < n;i ++)
{
...

}
他的時間復雜度都是O(n2)
不會是O(n2) + O(n) + O(n) + O(2n)...這樣的

❿ 用c語言描述的演算法可以直接在計算機上運行嗎

不可以
必須通過編譯器編譯成計算機語言才能運行

閱讀全文

與演算法可以上機運行嗎相關的資料

熱點內容
android強制系統橫屏 瀏覽:278
怎麼提前看未播出的電視劇app 瀏覽:664
cad轉pdf圖層 瀏覽:598
程序員接私活初級 瀏覽:433
全無油潤滑壓縮機 瀏覽:185
代碼加密常用方法 瀏覽:952
安卓手機如何解除已禁用 瀏覽:396
演算法的隨機性 瀏覽:485
高中解壓體育游戲 瀏覽:533
androidstudior丟失 瀏覽:345
命令行筆記 瀏覽:738
360目標文件夾訪問拒絕 瀏覽:519
3b編程加工指令 瀏覽:789
c8051f系列單片機選型手冊 瀏覽:773
南昌php程序員 瀏覽:512
bcs命令 瀏覽:446
如何在伺服器指向域名 瀏覽:417
車床編程可以做刀嗎 瀏覽:519
ln命令源碼 瀏覽:793
用粘液做解壓手套 瀏覽:331