1.問題
寫出兩種檢索演算法:在乙個排好序的陣列t[1…n]中查詢x,如果x在t中,輸出x在t的下標j;如果x不在t中,輸出j=0.按實驗模板編寫,「分析」部分僅給出複雜度結果即可。
2.解析
[問題的理解和推導,可用電子版直接在此編寫,也可用紙筆推導,拍照嵌入本文件]
1.順序查詢,最簡單最經典的思路,從下標0開始,不斷與需要查詢的數字進行比較,最差n次比較就能得到結果。
2.二分查詢,因為是順序陣列,所以每次和中間那個數進行比較,如果需要查詢的數字比中間那個小,則再次與左半邊中間的數字比較,不斷重複,直到找到需要的數字或者沒有空間為止(left>right)
3.如果查詢的數字比中間大,則同理,在右邊查詢。
1.o(n)
2.o(log2(n))
int
ordersearch
(int arr,
int num)
}return0;
}int
halfsearch
(int arry,
int number)
if(left > right)
return0;
else
return half+1;
}
兩種優化查詢的方法
兩種優化表查詢的方法 1 表的查詢順序 針對多表查詢 oracle的解析器按照從右到左的順序處理from子句中的表名,因此from子句中寫在最後的表 基礎表 driving table 將被最先處理。在from子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為基礎表。當oracle處理多個表時...
兩種簡單的查詢方法
這兩種查詢方法是 順序查詢法,二分法查詢 順序查詢法 思想 簡單地說就是那那個要找的數挨個與陣列中的數比較 二分法查詢 首先二分法查詢要求要查詢的陣列中的數必須是經過排序的 思想 就是先找到陣列中中間的那個數與要查詢的數進行比較,如果中間的數大 中間的數小 就去取中間的數左邊 右邊 的那個陣列中的中...
兩種排序方法
題目描述 考拉有n個字串字串,任意兩個字串長度都是不同的。考拉最近學習到有兩種字串的排序方法 1.根據字串的字典序排序。例如 car carriage cats doggies koala 2.根據字串的長度排序。例如 car cats koala doggies carriage 考拉想知道自己的...