刚学C++ 求问个 程序 谢谢!
/*------------------------------------------------------------------------Name:CHENG HAN
Data:11-10-27
Function:排序查找(用选择法对 15 个整数按从大到小的顺序排序再用折半查找)
------------------------------------------------------------------------*/
#include<iostream>
using namespace std;
int i,j;
class found{
public:
void paixu(int a[]) //定义一个函数paixu对15个数选择排序
{
int temp,min;
for(i=0;i<15;i++)
{ min=i;
for (j=i+1;j<15;j++)
if(a[j]<a[min])
min=j; //对i之后的数进行扫描将最小的数赋予min
if(min!=i) //判断min与i是否相等,若=则说明原假设正确反之交换数值
{temp=a[i];
a[i]=a[min];
a[min]=temp;}
}
}
int find(int a[],int n) //定义一个函数find用折半法查找数组中的元素
{
int low=0,high=14,pos;
while(low<=high )
{
pos=(high + low)/2;
if(a[pos]==n) return pos+1;
if(a[pos]<n)
{
low=pos+1;
}
else
{
high=pos-1;
}
}
return -1;
}
};
int main()
{ found A;
int a[15]={0};
int n;
cout<<"please input a[15]:"<<endl;
for(i=0;i<15;i++)
cin>>a[i];
A.paixu(a);
for(i=15;i>0;i--)
cout<<a[i];
cout<<"please input n:"<<endl;
cin>>n;
cout<<"it is di "<<A.find(a,n)<<" ge shu"<<endl;
return 0;
}