JAVA基礎(67)---查詢、排序演算法
阿新 • • 發佈:2018-11-20
查詢
給定一個值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