首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

初學者必讀:程式效率的多維思考——不只是代碼行數的問題

     編輯:關於C

這篇文章源自讀者對博主「老賀」部落格的留言互動。面對主動思考、提出深度問題的初學者,老賀表現出極大的興趣與鼓勵。完整對話可參考《C語言及程序設計實踐參考——n=a!+b!+c!》一文的二樓評論。

問題背景

有位讀者嘗試優化程式碼,但發現程式碼行數反而增加了,便發問:「老師,這樣還能提高效率嗎?」

老賀的深度解答

老賀首先肯定了提問者的主動思考,指出這在實體課學生中並不多見。隨後從多維度剖析「效率」的本質:

1. 計算機效率:時間與空間的權衡

多數情況下,效率指計算機執行效率,分為時間效率(執行耗時越少越好)和空間效率(運行佔用記憶體越少越好),其中時間效率最受關注。關鍵在於:源代碼行數多少,並非決定時間效率的關鍵。只要最終生成的目標代碼讓計算機執行的操作少,從時間角度自然就快。

2. 人的效率:隱性成本更高

計算機系統由「計算機」與「人」共同構成。在人力成本日益上升的今天,人的效率往往更值錢。對於不算太複雜的問題,或計算機效率雖低但足以滿足需求的場景,開發人員無需為計算機效率過度投入人力。只有系統中最關鍵的「瓶頸」部分,才值得耗費大量人力與頂尖智慧去追極致的計算機效率。這也是許多初級程序員體會不到學習算法必要性的原因——儘管優秀的初級程序員,算法素養無時不刻在發揮作用。

3. 簡單即是美:工程的鐵律

讀者的方案雖提高了計算機效率,卻降低了人的效率;更嚴重的是,算法複雜化導致出錯概率大增。任何工程都應遵循「簡單即是美」的法則。

給初學者的鼓勵

老賀最後指出:作為學習者,這種「人力低效率」恰恰從學習角度是最高效率的,對訓練思維價值極大。勉勵讀者繼續保持思考與質疑的習慣。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved