回复 20# 的帖子
#define INT_MAX 0x7FFF#define INT_MIN ((int)0x8000)
去头文件看了下``原来真的有耶``mqh21364非常感谢
现在仔细看了下```是我错了。。。t2有定义
----------------解决方案--------------------------------------------------------
我可没近视哦```只是刚才粗心了哈哈
----------------解决方案--------------------------------------------------------
FindMaxMin(int nlist[] ,int nlen)
{
int a=b=nlist[0];
for(i=o;i<=nlen-1;i++)
{
a=a>nlist[i]?a:nlist[i];
b=b<nlist[i]?b:nlist[i];
}printf("a=%d,b=%d",a,b);
}
应该可以吧
----------------解决方案--------------------------------------------------------
传说中的2n-2次比较....
----------------解决方案--------------------------------------------------------
很好,答案齐了……飞燕现身吧………………
----------------解决方案--------------------------------------------------------
回复 23# 的帖子
这份代码,我给50分――只差一点点就可以及格…… ----------------解决方案--------------------------------------------------------
牛人貌似很多的样子
----------------解决方案--------------------------------------------------------
还是缺少了一种
----------------解决方案--------------------------------------------------------
划分求解。。。。。。
----------------解决方案--------------------------------------------------------
程序代码:
void swap(int* arr,int i,int j)
{
int temp=arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
int partition(int*arr,int l,int r)
{
int j=r,key=arr[l];
int i=l;
for(++i;i<j;)
{
for(;arr[i]<key;++i);
for(;arr[j]>key;--j);
if(i<j)
swap(arr,i,j);
}
swap(arr,j,l);
return j;
}
int SelectPartition(int* arr,int l,int r,int p)
{
int j=-1,m=-1;
for(;m!=p; )
{
if(arr[l]==arr[r]) return arr[l];
j=partition(arr,l,r);
m=j-l+1;
if(m<p) { l=j+1; p=p-j; }
else r=j-1;
}
return arr[j];
}
void FindMaxMin(int nList[],int nLen)
{
cout<<"Mixmum: "<<SelectPartition(nList,0,nLen-1,nLen)<<endl;
cout<<"Manmum: "<<SelectPartition(nList,0,nLen-1,1)<<endl;
}
----------------解决方案--------------------------------------------------------