若對每個輸入例項,演算法都以正確的輸出停機,則稱該演算法是正確的,並稱正確的演算法解決了給定的計算問題。
不正確的演算法對某些輸入例項可能根本不停機。
問題描述:判斷乙個程式是否會在有限時間內結束執行。
這個答案是否定的,這裡涉及邏輯數學中可計算性理論。
《離散數學及其應用 第8版》 第13章 計算模型np完全問題的3個特點:《電腦程式的構造和解釋 第2版》 第4章 元語言抽象
不曾找到乙個np完全問題的有效演算法,沒有人能證明np完全問題確實不存在有效演算法;
np完全問題具有乙個非凡的性質:如果任何乙個np完全問題存在有效演算法,那麼所有np完全問題都會存在有效演算法;
即「乙個有解,個個有解」
有幾個np完全問題類似於(但又不完全同於)一些有些已知有效演算法的問題。
需要採用近似演算法解決問題
計算機科學家迷戀於如何通過對問題陳述的乙個小小的改變來很大地改變其已知最佳演算法的效率。
計算並行性提出的原因:
晶元功率密度隨時鐘速度超線性增加,一旦時鐘速度變得足夠快,晶元將有熔化的危險。
cpu不能無限加速解決方案:
晶元被設計成包含不止乙個而是幾個處理的核。故設計演算法時必須考慮並行性。
硬體上多核並行,軟體上多執行緒並行。執行緒概念的提出就是為了在軟體層面上解決計算並行性問題 演算法是當代計算機中使用的大多數技術的核心。
是否具有演算法知識與技術的堅實基礎是區分真正熟練的程式設計師和初學者的乙個特徵。
techniques for controlling the complexity of these large systems. in some sense, that』s really what computer science is about.參*** –harold abelson (sicp的作者)
演算法導論第8章習題
前面的排序都是基於比較排序,有時候不需要比較也可以排序。關鍵是那些東西有乙個好的表示,比如說整數。用decision tree證明,omega n lg n 是所有比較排序演算法的下界。決策樹中間節點表示比較的兩個東西,葉子節點表示元素的乙個置換,決策樹的每條邊表示這個演算法在這個節點獲得的比較資訊...
第 1 章 導論
作業系統 operating system 是管理計算機硬體的程式,為應用程式提供基礎,並且充當計算機使用者和硬體的中介。計算機系統可粗分為四個元件 硬體 作業系統 應用程式 使用者。作業系統是一直執行在計算機上的程式 通常稱為核心 除了核心外,還有系統程式 與系統的執行有關,但不是核心的一部分 和...
《演算法導論》筆記 第2章
本章出現了全書第乙個演算法 插入排序。插入排序並不是最直觀的排序演算法,拿它做第乙個講解應該有其他的理由。通過插入排序的講解,偽 約定 迴圈不變式 演算法分析等最基礎的知識被帶了出來。此後又講了第二個演算法 合併排序,並引出了演算法設計中的兩種常見型別 增量法 incremental 和分治法 di...