更新時間:2023-05-26 來源:黑馬程序員 瀏覽量:
計算機軟件的最終成果都是以程序的形式體現(xiàn)的,一個程序應當包含以下兩方面的內容:
(1)對數據的描述。在程序中指定用到哪些數據以及這些數據的類型和數據的組織形式,也就是數據結構。
(2)對數據操作的描述。即操作步驟,也就是算法。
數據結構是算法的基礎,算法是數據結構的靈魂。數據結構設計和算法分析的目的是設計更好的程序,程序的本質是為要處理的問題選擇好的數據結構,同時在此結構上施加一種好的算法。
對于一個程序來說,數據是原料。一個程序所要進行的計算或處理總是以某些數據為對象,將這些松散無組織的數據組織成一個數據結構,算法操作的就是這些數據結的設計和選擇要結合數據結構,簡單地說,數據結構的設計就是選擇存儲方式,如確定問題中的信息是用數據存儲還是普通的變量存儲或其他更加復雜的數據結構存儲。算法設計的實質是為實際問題要處理的數據選擇一種恰當的存儲結構,并在選定的存儲結構上設計一個好的算法,因為一個數據結構會對應多種不同的算法,此時就要利用時間復雜度與空間復雜度來選擇一個最優(yōu)算法。不同的數據結構設計將對應差異很大的算法。
數據存儲結構會影響算法的好壞,因此在選擇存儲結構時,也要考慮其對算法的影響。例如,如果存儲結構的存儲能力較強,則可以存儲較多的信息,算法將會好設計一些。反之,對于過于簡單的數據結構,于該結構的算法設計可能會比較復雜一些。另外,數據結構是算法操作的基礎,其選擇要充分考慮算法的各種操作,與算法的操作相適應。
算法通常是決定程序效率的關鍵,但一切算法最終都要在相應的數據結構上實現(xiàn),許多算法的精髓就是在于選擇了合適的數據結構作為基礎。在程序設計中,不但要注重算法設計,也要正確選擇數據結構,這樣往往能夠事半功倍。