二分查詢 優化自己的思想(快速查詢)

2021-09-26 19:51:25 字數 430 閱讀 3885

正常的二分查詢,頭尾不斷替換,每次砍掉一半

#define _crt_secure_no_warnings#include#include#define n 1024

void search(int a[n],int num) //二分查詢法 else if (num >a[zhong]) else } if (flag == -1) }

拉格朗日二分查詢,每次砍掉一大半

void searchl(int a[n], int num) //拉格朗日查詢法

else if (num >a[zhong]) else } if (flag == -1) } voidmain() intnum; scanf("%d", &num); searchl(a, num); system("pause"); }

二分查詢思想

二分查詢思想應用於對有序的陣列進行查詢操作。時間複雜度 二分查詢也稱為折半查詢,每次都能將查詢區間減半,這種折半特性演算法時間複雜度為o logn mid計算 有兩種計算中值mid的方式 l h可能出現加法溢位,也就是說加法的結果大於整形能夠表示的範圍。但是l和h都為正數,因此h l不會出現加法溢位...

二分查詢的思想

先看看leetcode兩道相關的題目,都是二分思想的應用。leetcode 35 leetcode 34 二分思想用一句話概況就是 一看就懂,一寫就廢 花了很長時間都沒有弄得懂,每個人都是不同的寫法,新手很難從中發現規律。其實二分查詢最重要的一句話就是 查詢範圍 如何確定查詢範圍?只要確定了查詢範圍...

二分查詢 最省記憶體的快速查詢實現方式

首先,二分查詢的使用物件是有序資料集合。如果是無序的資料,則不能使用二分查詢。二分查詢的時間複雜度為o logn 插入和刪除操作少,但是查詢頻繁時,可以考慮將資料設計成有數陣列資料,用二分查詢進行查詢。當插入和刪除頻繁時,如果設計成有序陣列資料,則需要頻繁的修改陣列資料,此時不宜用二分查詢。二分查詢...