折半查詢法(僅適用於已排好順序)

2021-06-27 23:52:34 字數 1627 閱讀 6285

#includeusing namespace std;

templateint binarysearch(type *array, int lenght,type key)//不適用於char ** 型別

array[mid] > key ? right = mid - 1 : left = mid + 1;

}return -1;

}int main()

;//測試整形

cout << binarysearch(a, sizeof(a) / sizeof(a[0]), -89)

cout << binarysearch(a, sizeof(a) / sizeof(a[0]), 9) << endl;

cout << binarysearch(a, sizeof(a) / sizeof(a[0]), 1) << endl;

cout << binarysearch(a, sizeof(a) / sizeof(a[0]), 45) << endl;

cout << binarysearch(a, sizeof(a) / sizeof(a[0]), 3) << endl

cout << binarysearch(b, sizeof(b) / sizeof(b[0]), 'j') << endl;

cout << binarysearch(b, sizeof(b) / sizeof(b[0]), 'f') << endl;

cout << binarysearch(b, sizeof(b) / sizeof(b[0]), 't') << endl;

cout << binarysearch(b, sizeof(b) / sizeof(b[0]), 'n') << endl;

cout << binarysearch(b, sizeof(b) / sizeof(b[0]), 'a') << endl

cout << binarysearch(c, sizeof(c) / sizeof(c[0]), 0.0) << endl;

cout << binarysearch(c, sizeof(c) / sizeof(c[0]),12.3) << endl;

cout << binarysearch(c, sizeof(c) / sizeof(c[0]), 34.23) << endl;

cout << binarysearch(c, sizeof(c) / sizeof(c[0]), 45.3) << endl;

cout << binarysearch(c, sizeof(c) / sizeof(c[0]), 234.4) << endl

string key = "uvw";//這裡只有定義乙個string型變數,如若在引數裡直接寫,會把它解析為const char* 型別,在當前的函式中會出錯

cout << binarysearch(d, sizeof(d) / sizeof(d[0]), key) << endl;

return 0;

}

折半查詢 適用於順序陣列

折半查詢的思路 在順序陣列中,找到初始值 最小值 中間值,最大值,分別以low,mid,high表示。然後進行迴圈查詢,例如圖 low 1,high 16,mid low high 2 如果key值剛好等於中間值mid,則返回中間值。如果所求值key比中間值大,則在mid與high之間在進行第二次查...

強制橫屏 僅適用於present情景

property nonatomic,assign bool allowrotation 然後新增 方法 return uiinte ceorientationmaskportrait 在需要設定橫屏的檢視present前設定為yes delegate.allowrotation yes 在橫屏檢視...

伺服器節能減排省錢方案 僅適用於小型企業

1.頻寬 以廣東電信為例,寬頻1 2 4 12m上行都為512kb。而在現有託管伺服器中100m共享最大上行僅為10m,也是要10多台伺服器共享的。通過寬頻架設伺服器理論可行。但要注意限制日常中的上傳行為,重點監控各種p2p軟體的使用。qq傳檔案 不知從什麼時候起,qq傳檔案就占有了90 的頻寬,即...