1. 程式人生 > >JAVA基礎(67)---查詢、排序演算法

JAVA基礎(67)---查詢、排序演算法

查詢

給定一個值K,在含有n個記錄的表中找出關鍵字等於K的記錄。若找到,則查詢成功,返回該記錄的資訊或者該記錄在表中的位置;否則查詢失敗,返回相關的指示資訊。

基於線性表的查詢

順序查詢

思想:逐個比較,直到找到或者查詢失敗

對給定的結構進行遍歷,依次使用要查詢的值與每一個記錄進行比較,如果相等,則返回該記錄所在的索引值,如果不存在,則返回-1

折半查詢(二分查詢)

二分查詢使用條件:必須是已排序的

2,1,4,6,5,3,7
第一步:排序:1,2,3,4,5,6,7  中間值是4,目標值是6

思想:獲取要查詢的陣列中的中間元素:
            使用目標值與中間元素進行比較:如果目標值大於中間值,則在排序後的後半部分進行查詢,如果比中間值小 則在排序之後的前半部分進行查詢;如果中間值等於目標值  則找到了;如果在整個陣列中查詢結束之後(start > end),依然沒有相等的值,則查詢失敗,返回 -1。

排序演算法

二叉樹遍歷

資料結構中有很多樹的結構,其中包括二叉樹、二叉搜尋樹、2-3樹、紅黑樹等。

二叉樹的遍歷方式:

前序遍歷:ABDFGHIEC

中序遍歷:EDHGIBEAC

後序遍歷:FHIGDEBCA

層序遍歷:ABCDEFGHI