C++数组求最大值及最小值最快方法(3[n/2]的时间效率)

#include 
using namespace std;
//最小值和最大值的求解,时间复杂度最多是3[n/2],依据算法导论第九章.
void swap(int &a,int &b)
{
	int temp = a;
	a = b;
	b = temp;
}
void Grial(int a[],int n)
{
	int i = 0;
	if(a[i]>a[i+1])
	{
		swap(a[i],a[i+1]);
	}
	for(int j = i+2;ja[j+1])
			{
				if(a[j]>a[1])
					swap(a[j],a[1]);
				if(a[j+1]a[1])
					swap(a[j+1],a[1]);
			}
		if(n%2!=0 && j==n-3)
			{
				if(a[n-1]a[1])
					swap(a[n-1],a[1]);
			  break;
			}
	}
	cout<

你可能感兴趣的:(C++/C)