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