一:直接查詢
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拉...