Java數據結構與算法(第一章綜述)

數據結構和算法能起到什麼做用?java

數據結構是對在計算機內存中(有時在磁盤中)的數據的一種安排。數據結果包括數組、鏈表、棧、二叉樹、哈希表等等。算法對這些結構中的數據進行各類處理,例如,查找一條特殊的數據項或對數據進行排序。程序員

可用於下面三類狀況:算法

  • 現實數據存儲數據庫

  • 程序員的工具編程

  • 建模數組

數據結構的特性:數據結構

數據結構 優勢 缺點
數組 插入快,若是知道下標,能夠很是快地存取 查找慢,刪除慢,大小固定
有序數組 比無序的數組查找快 刪除和插入慢,大小固定
提供後進先出的方式存取 存取其餘項很慢
隊列 提供先進先出的方式存取 存取其餘項很慢
鏈表 插入快,刪除慢 查找慢
二叉樹 查找、插入、刪除都快(若是若是樹保持平衡) 刪除算法複雜
紅-黑樹 查找、插入、刪除都快。樹老是平衡的 算法複雜
2-3-4樹 查找、插入、刪除都快。樹老是平衡的。相似的樹對磁盤存儲有用 算法複雜
哈希表 若是關鍵字已知則存取極快。插入快 刪除慢,若是不知道關鍵之則存取很慢,對存儲空間使用不充分
插入、刪除快,對最大數據項的存取很快 對其餘數據項存取慢
對現實世界建模 有些算法慢且複雜

上表中的數據結構除了數組以外 均可以被認爲是抽象數據結構(ADT)。數據結構和算法

算法的概述工具

      對於大多數數據結構來講,都須要知道如何:大數據

  • 插入一條新的數據項

  • 尋找某一特定的數據項

  • 刪除某一特定的數據項

    還須要知道如何迭代地訪問某一數據機構中的各項數據項,以便進行顯示或其餘操做。

    另外一種重要的算法範疇是排序,排序有許多種算法。簡單排序和高級排序 。

    遞歸的概念在設計某些算法時十分重要。遞歸意味着一個方法調用它自身。     

一些定義

    數據庫(database)

            表示在某一特定狀況下全部查閱的數據,數據庫中每一條數據都被認爲是一樣格式的。例如,若是使用索引看片來作一本地址薄,其中全部的卡片便構成了一個數據。文件這個數據有時也有表明一樣的意思。

    記錄(record)

            記錄時指數據庫中劃分紅的單元。

    字段(field)

            一條記錄常常被劃分爲幾個字段。一個字段保存某一種特定的數據。

    關鍵字

            在數據庫中查找一條記錄,須要制定記錄的某一個字段爲關鍵字(或查找關鍵字)。經過這個特定的關鍵字來進行查找。    

面向對象編程

    過程性語言的問題

            一是程序與現實世界缺少對應關係。

            使用過程語言對現實世界問題進行抽象及概念化十分困難:方法執行任務,而數據存儲信息,可是現實世界中的事物是對兩者同時進行操做的。例如,爐子上的自動調溫器執行任務(爐子的開關)但同時也存儲信息(如今的溫度和所但願的溫度)。

            二是程序內部的結構出現了問題。

            解決程序的內部組織結構是一個更微妙並且事關重大的問題。

對象簡述

    對象

            面向對象編程思想的關鍵性突破就是:一個對象同時包括方法和變量。

    

            類是針對一個對象或多個對象的說明(或藍圖)。

    建立對象

            類的聲明並無建立這個類的任何對象,java使用關鍵字new。在建立對象的同時,須要將一個引用存儲到一個具體有適合的類型的變量中。

    面向對象的幾個重要特性:

  • 對象同時包括方法和字段(數據)。

  • 類是任意數目對象的說明。

  • 建立一個對象,要將關鍵字new和類的名稱連用。

  • 調用一個對象的方法,要使用點運算符。            

Java數據結構的類庫

            Java.util包中包含有諸如向量(一個可擴充的數組)、棧、庫(dictionary)和哈希表等類型的數據結構。

小結

  • 數據結構是指數據在計算機內存空間中或磁盤中的組織形式。

  • 正確選擇數據結構會使程序的效率大大提升。

  • 數據結構的例子有數組、棧、和鏈表。

  • 算法是完成特定任務的過程。

  • 在Java中、算法常常經過類的方法實現。

  • 在本書的大部分數據機構和算法常常被用來建造數據庫。

  • 一些數據結構的用途是做爲程序員的工具:它們幫助執行算法。

  • 其餘數據結構能夠模仿顯示世界中的狀況,例如城市之間的電話線網。

  • 數據庫是指由許多相似的記錄組成的數據存儲的集合。

  • 一條記錄常常表示顯示世界中的一個事物,例如一名僱員或一個汽車零件。

  • 一條記錄被分紅字段。每一個字段都存儲了 由這個記錄所描述事物的一條特性。

  • 一個關鍵字是一條記錄中的一個字段,經過它能夠對數據執行許多操做。例如,人事記錄能夠經過LastName字段進行排序。

  • 能夠搜索數據以便找到關鍵字字段有定值的全部記錄,這個值被稱爲查找關鍵字。

相關文章
相關標籤/搜索