根據給定的數值在乙個列表中進行查詢,有兩種基本方法:順序查詢和二叉查詢。
1、當資料項在列表內隨機排列的時候可以用順序查詢,2、而當資料項在列表內有許排列時用二叉查詢(
一、1、順序查詢
最簡單的方式:從列表的開始處順序遍歷每條資料,直到找到所需要的資料或到了末尾,即順序查詢
實現方式比較簡單:
bool result
for (int i = 0; i < array.length; i++)
}return result
2、查詢最小值或最大值
基本流程:選擇陣列第乙個數為最小(大)值,遍歷陣列,和每乙個相比,如果比最小(大)值小(大),就交換資料。直到最後乙個資料。
int result = 0;
if (最小值)
}
}else}}
return result;
3、自組織資料
當要查詢的資料元素就在資料集合的開始處時會產生最快的查詢,通過把找到的資料項移動到開始處可以提高查詢速度。就是把頻繁查詢的資料項法國能在資料集合開始處的方法使查詢次數最少。
因為要查詢的資料大概會遵循「80-20」規則,即在資料集合上的80%的查詢都是為了找到20%的資料。服從帕累託分布。
二 基礎查詢演算法
有兩種對列表內資料進行查詢的方法,順序查詢和二叉查詢。當資料項在列表內隨機排列的時候可以用順序查詢,當資料在列表內有序排列的時候則會用到二叉查詢。抄點書上原話 助於理解,哈哈。一 順序查詢 最常見的查詢型別就是從記錄集的開始出順次遍歷每條記錄,直到找到所要的記錄或者是達到資料集的末尾,這就是順序查詢...
基礎演算法之五 查詢 折半查詢
折半查詢 又稱為二分查詢。這種查詢方法要求查詢表的資料是線性結構儲存,並且還要求查詢表中的資料是按關鍵字由小到大有序排列。折半查詢 二分查詢 是一種簡單而又高效的查詢演算法,其查詢長度至多為 2n 1 判定樹的深度 平均查詢長度為 2 n 1 1,效率比順序查詢要高,但折半查詢只能適用於順序儲存有序...
基礎演算法 查詢 線性索引查詢(I)
前面介紹的幾種查詢的演算法都是基於資料有序的基礎上進行的。但是在實際的應用中,很多資料集可能有驚人的資料量,面對這些海量的資料,要保證記錄全部按照當中的某個關鍵字有序,其時間代價是非常昂貴的,所以這種資料通常都是按先後順序儲存的。那麼如何能夠快速的查詢到需要的資料呢?辦法就是 索引。索引就是把乙個關...