是根據實際情況抽象出ADT數據結構重要,還是給出Specialized的演算法更關鍵?


我們常說adt,不是Android development kit,這裡說的是abstract data type!通常一個adt定義了數據結構以及數據結構上的操作。對於一個複雜的問題,往往一開始並沒有合適的數據結構來應對該問題,那麼怎麼辦,比如機械硬碟,現在這個硬碟,我們我知道了有隨機訪問慢,順序訪問快的特點,文件存儲也不連續,怎麼辦,如何充分利用機械硬碟特點,更快的查找,訪問數據,針對特點,構造了b+樹這種特殊的數據結構,伴隨著這個數據結構,產生了一些演算法,比如如何進行插入刪除操作,才能保證b+的性質。你提這個問題,可能是沒有遇到複雜的場景,沒有自己設計過具體的數據結構。可能碰到的問題,用一些常用的棧,隊列,堆等,組合一系列巧妙的操作就完了。


對立統一。
喫飯的時候用筷子,哪一根更重要?脫離數據結構的演算法和脫離演算法的數據結構都沒有討論的意義
實踐中,有的行業演算法用的比較多,比如計算機圖形學,有的行業基本沒演算法,但是數據結構比較多,比如互聯網

發動機重要還是變速箱重要......


物理和數學哪個對世界更重要?
平時說到數據結構或演算法指的不都是Data Structures Algorithm嗎...
感覺 是統一的主體,沒有高深的演算法,知道些數據結構,大多程序員安穩的工作著。當然如果一點演算法的概念不懂,估計也做不好很好的程序
工程圖紙和磚塊哪個重要?


相輔相成…兩手都要抓 兩手都要硬額 算了我不明白什麼adt 和什麼 speacialize什麼的

但我認為最佳數據結構的確立

有助於確立更好更棒的演算法使得整個程序更好更棒所以 兩者同樣重要 但我認為這是個過程的 是有邏輯的


推薦閱讀:
相關文章