程式的複雜度問題 1

2021-04-16 05:24:53 字數 560 閱讀 9509

程式的複雜度取決於其要解決問題的複雜度。

通常,人們總是習慣性的傾向於簡化問題,在分析的過程中,人為的低估了問題的複雜性而自己沒有感覺。對問題複雜度的低估會直接導致軟體的架構偏簡單實用而穩定性和擴充套件性欠佳。

舉個例子,對於所有寫**的人而言,如果能用乙個exe直接搞定,估計不會有人給自己找麻煩搞出一堆dll來;同樣,如果乙個執行緒能做完所有工作,那麼也不會有人去開一堆執行緒然後逐個合併。

但是問題的複雜度畢竟取決於問題本身,而非人們的一廂情願。誠然,乙個執行緒+timer可以做到很多時候多執行緒才能完成的工作,甚至應該用非同步的地方而改用同步,但是問題並沒有被解決而是被人為的迴避掉了。kepp it **all and ******固然很重要,但是實在保證乙個"合理的軟體複雜度"的前提下。

作為網際網路時代的客戶端軟體而言,軟體的規模導致的問題是第二位的。快速變化的需求才是首要問題。不顧問題本身複雜度而找出短、平、快的解決辦法,其實是飲鳩止渴,最終的結果就是不斷地推翻全部從來。

如果能正確的把握問題的複雜度,並體現在軟體的設計上,那麼大部分需求的變化可以轉化為一些現有邏輯的分拆重組,大大的降低了網際網路客戶端軟體開發的風險和人力成本。

複雜度問題

資料結構中複雜度問題 複雜度問題想必是很多人最頭疼的問題,下面就對其進行一些總結 複雜度分為 時間複雜度與空間複雜度 空間複雜度 演算法執行時,占用多少記憶體,包括指令空間 資料空間和環境棧空間 時間複雜度 執行程式所使用的時間量級,包括編譯時間和執行時間。評價乙個演算法的好壞,一般兩種複雜度呈現線...

時間複雜度和空間複雜度 1

演算法的時間複雜度和空間複雜度合稱為演算法的複雜度。1.時間雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法...

時間複雜度和空間複雜度1

相信學習程式設計的同學,或多或少都接觸到演算法的時間複雜度和空間複雜度了,那我來講講怎麼計算。常用的演算法的時間複雜度和空間複雜度 一,求解演算法的時間複雜度,其具體步驟是 找出演算法中的基本語句 演算法中執行次數最多的那條語句就是基本語句,通常是最內層迴圈的迴圈體。計算基本語句的執行次數的數量級 ...