常見的查詢演算法

2021-07-29 11:05:37 字數 826 閱讀 9986

一:直接查詢

1.1 實現原理:從第乙個開始,依次向後挨個對比,直到找到所需的字元為止。

1.2 時間複雜度:o(n),其中n是字元的總個數。

1.3 實現**:

public

class

directfind ;

int target = 74;

for(int i=0;iif(target == array[i])}}

}

二:二分法查詢

2.1 實現原理:假設乙個陣列已經排序完成,則直接比較陣列中間位置的字元和目的字元是否一致;若一致則結束,若不一致則再次判斷。中間位置字元》目的字元,則在首字元到中間字元這段陣列中再次二分查詢;中間位置字元《目的字元,則在中間字元到末字元這段陣列中再次二分查詢;依次迴圈,直至結束。

2.2 時間複雜度:log以2為底數n的對數。

2.3 實現**:

public

class dichotomyfind ;

int target = 74;

//陣列下標

int begin = 0;

int end = array.length-1;

int count = 1;

while(begin <= end)else

if(array[middle] > target)else

if(array[middle] < target)

}system.out.println("未找到目的字元"+target);

}}

面試常見演算法 排序查詢演算法

常見面試問題總結目錄 演算法是程式設計師必被的乙個技能,在面試中常常出現,下面總結了面試中出現的常見演算法,這些演算法程式設計師應該牢記在心中,要非常熟練。原理 將陣列分為無序區和有序區兩個區,然後不斷將無序區的第乙個元素按大小順序插入到有序區中去,最終將所有無序區元素都移動到有序區完成排序。要點 ...

常見排序演算法和查詢演算法

時間複雜度 o n 2 穩定 let arr 3,15,9,10,1,26,2,5 for let i 0 i arr.length 1 i console.log arr 1,2,3,5,9,10,15,26 時間複雜度 o n 2 不穩定 let arr 3,15,9,10,1,26,2,5 f...

常見查詢演算法效能總結

演算法 最壞情況下的執行時間的增長數量級 最壞情況下的執行時間的增長數量級 平均情況下的執行時間的增長數量級 平均情況下的執行時間的增長數量級 記憶體使用 查詢插入 查詢命中 插入順序查詢nn n 2n 48n二分查詢 lgnn lgnn 2 16n紅黑樹 2lgn 2lgn lgnlgn 64n拉...