變形二分查詢

2021-10-22 14:22:57 字數 2620 閱讀 6148

/***

* 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...