有兩種對列表內資料進行查詢的方法,順序查詢和二叉查詢。當資料項在列表內隨機排列的時候可以用順序查詢,當資料在列表內有序排列的時候則會用到二叉查詢。(抄點書上原話:助於理解,哈哈。)
(一)順序查詢
最常見的查詢型別就是從記錄集的開始出順次遍歷每條記錄,直到找到所要的記錄或者是達到資料集的末尾,這就是順序查詢。順序查詢是非常容易實現的,從陣列的起始處開始,把每個訪問到的陣列元素一次和所需要查詢的數值進行比較,如果相同就說明找到了,否者就沒有找到。** 如下:
//////
順序查詢
//////
//////
static
intseqsearch(
int arr,
intsearchnum)
return-1
;}有時候我們需要查詢最小值和最大值,在乙個有序的陣列中查詢最小和最大值是非常容易的,但是往往一般陣列都是無序的,對於無序的陣列我們的演算法是(假如我們要找最大值):
把陣列的第乙個元素作為最大值給乙個變數。
開始迴圈遍歷陣列,把他之後的每乙個數和設定的最大值進行比較,如果比最大值還大,那麼他們進行交換。
當迴圈結束後,返回的值便是最大的值。
**如下:
//////
查詢最大最小
//////
陣列///
查詢型別,0查詢最大,1查詢最小
///static
intfind(
int arr,
intfindtype)
}return
big;
}else
if(findtype ==1
)}return
min;
}else
}
演算法基礎 二分查詢
二分查詢主要是為了解決 在一堆數中找出指定的數 這類問題。要想二分查詢,這一堆數必須有以下特徵 至於是順序遞增還是遞減,是否存在相同的元素都不要緊。include include using namespace std int binarysearch int array,int low,int h...
二分查詢 基礎演算法
今天有童鞋問到我二分的題,一時間竟然忘了二分怎麼敲了。就特麼你這記性還是別搞acm了 二分的思想 在乙個公升序的序列中查詢乙個元素,普通的想法是直接從頭擼到尾然後判斷,但是當資料很多的時候這中普通的思想絕壁會超時 不過不要小看這種普通的從頭到尾去遍歷的思想,有的時候,它很暴力 二分不同,它是每次去把...
基礎演算法 二分查詢
二分查詢 二分查詢原理 從有序列表的候選區data 0 n 開始,通過對待查詢的值與候選區中間值的比較,可以使候選區減少一半。二分查詢 在乙個陣列內,找到中間值,判斷要找的值和中間值大小的比較。如果中間值大一些,則在中間值的左側區域繼續按照上述方式查詢。如果中間值小一些,則在中間值的右側區域繼續按照...