實現二叉查詢的兩種方法

2021-08-25 20:28:41 字數 908 閱讀 9744

在群裡經常看到很多網友面試回來說又考了二叉查詢,但是搞不懂咋個實現,看來這個查詢確實是面試中出現的頻率比較高的,所以就此把這方法實現一下,希望對需要幫助的朋友有所幫助,具體實現如下**所示:

[code]

package com.myclover.utils.search;

public class searchutils

}return -1;

}/**

* 功能描述:二分查詢指定陣列中的目標資料(非遞迴)

* @param array 指定的陣列

* @param data 目標資料

* @return 返回值:返回目標資料在指定陣列中的索引值,如果沒找到,則返回-1

*/public static int binarysearch(int array , int data)

while(low <= high)else if(data > array[mid])else

}return -1;

}/**

* 功能描述:二分查詢指定陣列中的目標資料(遞迴)

* @param array 指定的陣列

* @param low 陣列的開始索引

* @param high 陣列的結束索引

* @param data 目標資料

* @return 返回值:返回目標資料在指定陣列中的索引值,如果沒找到,則返回-1

*/public static int binarysearch(int array , int low , int high , int data)

int mid = (low + high) >>> 1; //相當於除以2

if(data < array[mid])else if(data > array[mid])else}}

[/code]

折半查詢c 的兩種方法實現

折半查詢在資料結構演算法中是乙個比較實用的演算法。但是它是乙個只能用於查詢有順序的數,這並不影響它的使用,可以先實現乙個排序再進行查詢。折半查詢比較簡單,但是注意的點也比較多。下面我將用遞迴和非遞迴兩種方法進行實現。非遞迴 在取頭尾時有兩種選擇 左閉右閉 begin,end 左閉右開 begin,e...

列表查詢的兩種方法

列表查詢 從列表中查詢指定元素 輸入 列表 待查詢元素 輸出 元素下標或未找到元素 二分查詢 1.順序查詢 時間複雜度為o n def linear search data set,value for i in range len data set if value data set i retur...

兩種方法實現Python二分查詢演算法

一.arr 1,3,6,9,10,20,30 def findnumber l,h,number mid l h 2 if arr mid number print 找到了 str mid elif arr mid number h mid return findnumber 0,mid 1,num...