Sartaj Sahni在他的《資料結構、演算法與應用》一書中稱:「資料結構是資料對象,以及存在於該物件的實例合組成實例的資料元素之間的各種聯繫。這些聯繫可以透過定義相關的函數來給出。」他將資料物件(data object)定義為「一個資料物件是實例或值的集合」。
Clifford A.Shaffer在《資料結構與演算法分析》一書中的定義是:「資料結構是ADT(抽象資料類型Abstract Data Type) 的物理實作。」
大話資料結構:資料結構是相互之間存在一種或多種特定關係的資料元素的集合。
姥姥:資料結構包括資料物件集以及它們在電腦中的組織方式,即它們的邏輯結構和物理儲存結構,同時還包括與資料物件集相關的操作集,以及實現這些操作的最高效的演算法。
個人:就是把圖書館中的書轉換成一些字元資料存入電腦中,以及這些資料物件集的操作。如找書,擺放書等。
還是圖書館的例子,如果一本一本找累死人,如果有索引,先找哪一類這樣會快很多。如何找其實就是演算法。
演算法是解決問題步驟的有限集合,通常用某一種電腦語言進行偽碼描述。通常用時間複雜度和空間複雜度來衡量演算法的優劣。
演算法的五大特徵:輸入、輸出、有窮性、確定性、可行性。
輸入:零個或多個輸入。
輸出:一個或多個輸出。
有窮性:有限步驟後在可接受時間內完成。
確定性:每個步驟都有確定意義,無二義性。
可行性:每一步都是可行的。
演算法設計需求:正確性、可讀性、健全性、時間效率高和儲存低。
正確性:有輸入輸出,無二義性,有正確答案。
可讀性:方便閱讀。
健全性:輸入不合法能處理
時間效率高且儲存低:時間空間複雜度越低越好
以上是資料結構中什麼是演算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!