什么是算法


算法是計算機解決問題的步驟。是以人類可以理解的方式描述的,用於編寫程序之前。程序是計算機可以理解的語言。同一個算法,不同的編程語言,程序就會不同。不同寫程序的人,編程也會不同。

 

問題:對n個數字進行排序

算法設計

  • 方法1:全排列算法。
    • 生成n個數的數列(不和前面重復)
    • 如果生成的數列從小到大排序,將其輸出,否回1
  • 方法2:選擇排序
    • 找n個中最小一個,放最左邊
    • 找n-1中找最小一個,放第2個位置
  • 方法3:......

算法的選擇:運行時間,空間資源...

示例

方法1:運氣好,很快出現正確結果,運氣不好,最后一個出現正確結果。計算時間是

\[n!=n(n-1)(n-2)\cdots3\cdot2\cdot1\]

方法2:計算時間

\[n+(n-1)+(n-2)+\cdots3+2+1=\frac{n(n-1)}{2}\leqslant n^{2}\]

方法1大於10^20年,宇宙大爆炸到現在才10^11年。方法2是2ns。算法對計算方法的影響很大。

 

 

如何計算運行時間?

使用“步數”來描述運行時間,“1步”就是計算的基本單位。

運行時間的表示方法

O這個符號的意思是“忽略重要項以外的內容”,讀音同order。

\[O(n^2)\]算法的運行時間最長也就是n^2的常數倍


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM