/***
* title:"資料結構與演算法" 專案
* 主題:二分查詢
* description:
* 分析:
* 1、查詢的是乙個有序的資料集合
* 2、每次查詢都是與區間的中間元素進行對比,將待查詢的區間縮小為之前的一半,直到找到要查詢的元素,或者區間被縮小為0
* date:2021
* version:0.1版本
* author:coffee
* modify recoder:
*/using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace basealgorithm
else
else if ((array[middleindex]).compareto(needsearchcontent) < 0)
else
else}}
return -1;}}
/// /// 查詢最後乙個值等於給定值的元素
///
/// 陣列
/// 陣列長度
/// 需要查詢的內容
/// 返回需要查詢內容是否存在陣列的中內容索引(-1:表示不存在)
public int matchgivevalueofsearclastvalue(t array, int arraylength, t needsearchcontent)
else
else if ((array[middleindex]).compareto(needsearchcontent) < 0)
else
else}}
return -1;}}
/// /// 查詢第乙個大於等於給定值的元素
///
/// 陣列
/// 陣列長度
/// 需要查詢的內容
/// 返回需要查詢內容是否存在陣列的中內容索引(-1:表示不存在)
public int morethanorequalvalueofsearchfirstvalue(t array, int arraylength, t needsearchcontent)
else
else
}else
}return -1;}}
/// /// 查詢最後乙個大於等於給定值的元素
///
/// 陣列
/// 陣列長度
/// 需要查詢的內容
/// 返回需要查詢內容是否存在陣列的中內容索引(-1:表示不存在)
public int morethanorequalvalueofsearchlastvalue(t array, int arraylength, t needsearchcontent)
else
else
}else
}return -1;}}
}}
using system;
using system.collections.generic;
using system.diagnostics;
using system.linq;
using system.text;
using system.threading;
namespace basealgorithm
; int arraylength = testarray.length;
printallcontentofarray.print(testarray, arraylength);
//1-對陣列排序
quicksortquicksort = new quicksort();
quicksort.basequicksort(testarray,arraylength);
printallcontentofarray.print(testarray,arraylength);
bool isloop = true;
while (isloop)
,且在陣列中的索引為:", needsearchvalue, index);
}else
,請重新輸入!!!");}}
console.readline();}}
}
①查詢第乙個值等於給定值的元素
②查詢最後乙個值等於給定值的元素
③查詢第乙個值大於等於給定值的元素
④查詢最後乙個值大於等於給定值的元素
二分查詢及其變形
一 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。方法一 o n public int minnumberinrota...
二分查詢及其變形
最基本的二分查詢模版 在有序陣列a中查詢key,如果找到,返回位置索引,否則,返回 1 int binarysearch int a,int n,int key else if a mid key else return 1 變種1 如果a有多個key元素,返回最大的,否則,返回 1 int bin...
二分查詢及變形
二分查詢是在完全有序陣列 或部分有序 中對某一元素進行快速查詢的演算法。時間複雜度為o logn 實現方式有遞迴和非遞迴。非遞迴實現 public int binarysearch int nums,int key int low 0,high nums.length 1 while low hig...