演算法學習筆記1

2022-09-12 10:15:14 字數 810 閱讀 6120

1:二分查詢 

int arr=new int;

binatsearch(arr, 12);

}public static int binatsearch(int arr,int a)

else

}return -1;

}使用要求: 1 有序   實現思路:1:確定最壞情況沒找到(low<=height) 2:二分查詢 基於最低最高位取其中間 所以 a[每次的取值(low+height)/2], 3:找值  由於要求條件1制約 我們取的值只可能比我們的大或者小,大 表示我們要找的值在我們的左邊。所以heigh=middle

為什麼-1 因為陣列角標 0--n-1  4:如果我們取出的a[(midle+height)/2] 《我們查詢的,表示我們要查詢的資料在我們的右邊。,所以low=midle+1;  最終迴圈每次middle=(low+height)/2 ; 與我們傳入的值比較 相同返回角標,與順序查詢(冒泡,快速排序) 效率大大提高。

2:健壯性二分查詢

public static void main(string args)

public static int binarysearch(int arr,int a)

int low=0;

int heigh=arr.length-1;

while(low<=heigh){

mid=(low+heigh)/2;

if(arr[mid]健壯性: 在該演算法中在查詢我們想要的元素時,如果不比mid的項大,那麼他在包含mid的位置範圍內,在我們跳出迴圈的時,子範圍看就是1!!!,可以測試是否有匹配。

3:

演算法學習筆記1 演算法簡介

1.1演算法是一組完成任務的指令,任何 片段都可視為 1.2二分查詢 在乙個有序的元素列表 必須有序 如果要查詢的元素包含在列表中,則返回其位置 否則返回null。工作原理 每次都從列表的中間進行查詢,每次都排除一半的數字。例 在1 100中找到乙個我想的數。從50開始,小了,就找50 100之間的...

《演算法》學習筆記 演算法分析(1)

用於研究理解演算法的思想和方法 任務 科學家理解自然世界 策略 細緻地觀察真實世界的特點,通常還要有精確的測量 根據觀察結果提出假設模型 根據模型來 未來的事件 繼續觀察並核實 的準確性 如此反覆知道確認 和觀察一致 分類和類別 程式的執行時間。精確 近似 原理與通則 準確測量程式的執行時間是困難的...

雜湊演算法 學習筆記1

今天聽了洛谷的字串課之後,對於自己好好學學字串演算法也有了更大的動力。但由於比較弱,所以先從最最簡單的乙個開始。也就是雜湊演算法。它通過給每個字串賦予乙個 隨機 生成的整數的方法,使得可以用更加快的效率實現字串判重或者匹配字串等等操作。比如說如果有兩個字串s和s 長度分別為l和l 而我們要比較它們是...