/**
* @brief Unimodal Search, Algorithm PS 1-3
* @author An
* @data 2013.5.13
**/
//using namespace std;
int unimodalSearch ( int *array, int low, int high )
{
while ( low < high )
{
int mid = ( low + high ) / 2;
if ( array[mid] < array[mid + 1] )
low = mid + 1;
else if ( array[mid] > array[mid + 1] )
high = mid;
}
return low;
}
int max_x_convex ( int convex[][2], int low, int high )
{
while ( low < high )
{
int mid = ( low + high ) / 2;
if ( convex[mid][0] < convex[mid + 1][0])
low = mid + 1;
else if ( convex[mid][0] > convex[mid + 1][0] )
high = mid;
}
return low;
}
int max_y_convex ( int convex[][2], int low, int high )
{
low = max_x_convex( convex, low, high );
while ( low < high )
{
int mid = ( low + high ) / 2;
if ( convex[mid][1] < convex[mid + 1][1] )
low = mid + 1;
else if ( convex[mid][1] > convex[mid +1][1] )
high = mid;
}
if ( convex[0][1] > convex[low][1] )
low = 0;
return low;
}
本文介绍了一种在一维及二维凸形数组中进行搜索的算法,通过不断缩小搜索范围来定位最大值的位置。该算法适用于已知数组为单峰特性的情况,能够高效地找到数组中的最大值。
151

被折叠的 条评论
为什么被折叠?



