演算法在計算機中的作用

2021-07-24 14:58:48 字數 1193 閱讀 7280

一、演算法是什麼

演算法非形式地說,演算法就是任何良定義(沒有公理性的矛盾,不會推出與實際情況相悖的情況)的計算過程,該過程取某個值或值的集合作為輸入並產生某個值或值的集合作為輸出。這樣的演算法就是把輸入轉換成輸出的計算步驟的乙個序列。

是描述乙個特定的計算過程來實現該輸入/輸出關係。

比如:輸入序列為,排序演算法將返回序列作為輸出,這樣的輸入序列稱為排序問題的乙個例項。因為許多程式都是用排序演算法作為乙個中間步,所以排序是電腦科學中的乙個基本操作,選哪個演算法依賴於以下的因素:1)被排序的專案;2)項已被稍微排序的程度;3)項值的可能限制;4)計算機的體系結構;5)儲存的種類。

若對每個輸入例項演算法都以正確的輸出停機,則稱該演算法是正確的,並稱為正確的演算法解決了給定的計算問題。不正確的演算法可能對某些輸入例項根本停不了機,也可能以不正確的回答停機。

二、演算法的特徵

1、存在很多候選解,但絕大多候選解都沒有解決手頭的問題。尋找乙個真正的解或乙個最好的解可能是乙個很大的挑戰。

2、存在實際應用。

但是演算法解決的每個問題並不都有乙個容易識別的候選解集。

三、存在的難題

我們關於效率的一般量度是速度,即乙個演算法花多長時間產生結果。然而有一些演算法目前還不知道有效的解法。除此之外,我們可以指望處理器時鐘速度能以某個持續的比率增加多年,然而物理的限制對不斷提高的時鐘速度給出了乙個基本路障:一旦時鐘速度變得足夠快,晶元將會有融化的危險。所以,為了每秒執行更多的計算,晶元將會設定成多核。

四、演算法的效率

第二章將將介紹兩個用於排序的演算法,第乙個稱為插入演算法,排序n項,該演算法所需耗費的時間大致等於c1n^2,其中c1是不依賴於n的常數。第二個是歸併排序,為了排列n項,所花的大致時間是c2nlgn(其中lgn是指log2(n),c2是不依賴於n的常數),就執行時間來說,歸併序列的執行時間比插入序列短。當輸入規模大的時候,兩種演算法的差別就顯現出來了。

五、演算法與其他技術

目前許多的應用都是需要演算法的。例如:考慮一種基於全球資訊網的服務,它確定如何從乙個位置旅行到另乙個位置。其實依賴於快速的硬體,乙個圖形使用者介面,廣域網,還可能依賴於物件導向技術。然而,對某些操作,如尋找路線(可能使用最短路徑演算法)、描繪地圖、插入位址,它還需要其他演算法的。

硬體設計需要演算法,圖形使用者介面的設計也需要演算法,網路中的路由高度依賴演算法......

演算法是當代計算機中使用的大多數核心。

是否具有演算法知識與技術的堅實基礎是區分真正熟練的程式設計師與初學者的乙個特徵。

計算機中hosts檔案的作用

一 hosts檔案的位置 hosts檔案一般位於c windows system32 drivers etc下面,是乙個純文字檔案,直接使用記事本打卡自己可 二 hosts檔案的基本內容和語法 這個檔案是根據tcp ip for windows的標準來工作的,它的作用是定義ip位址和host nam...

負數在計算機中的表示

今天,老大讓我調查乙個浮點數轉換為整數的問題。自己就查了些資料,順便複習一下原碼 反碼和補碼。原碼 將乙個整數,轉換成二進位制,就是其原碼。如單位元組的5的原碼為 0000 0101 5的原碼為1000 0101。反碼 正數的反碼就是其原碼 負數的反碼是將原碼中,除符號位以外,每一位取反。如單位元組...

負數在計算機中的儲存

問乙個基本的問題。負數在計算機中如何表示?舉例來說,8在計算機中表示為二進位制的1000,那麼 8怎麼表示呢?很容易想到,可以將乙個二進位制位 bit 專門規定為符號位,它等於0時就表示正數,等於1時就表示負數。比如,在8位機中,規定每個位元組的最高位為符號位。那麼,8就是00001000,而 8則...