資源簡介
小算法,感覺還是可以的,對于初學算法的朋友應該有用的,喜歡的朋友頂一下
代碼片段和文件信息
#include?
using?namespace?std;
#define?N?7
class?Jobtype
{
public:
int?key;
int?index;
public:
void?h(int?v1int?v2)
{
key=v1;
index=v2;
}
};
//排序
void?Swap(Jobtype?*aint?iint?j)
{
Jobtype?temp;
temp=a[i];a[i]=a[j];a[j]=temp;
}
int?Partition(Jobtype?*aint?pint?r)
{
int?i=pj=r+1;
Jobtype?x;
x=a[p];
while(true)
{
while(a[++i].key while(a[--j].key>x.key);
if(i>=j)
break;
Swap(aij);
}
a[p]=a[j];
a[j]=x;
return?j;
}
void?QuickSort(Jobtype?a[]int?pint?r)
{
if(p {
int?q=Partition(apr);
QuickSort(apq-1);
QuickSort(aq+1r);
}
}
//搜索x
int?BinarySearch(Jobtype?a[]int?&?xint?n)
{
int?left=1;
int?right=n;
while(left<=right)
{
int?middle=(left+right)/2;
if(x==a[middle].key)
return?middle;
if(x>a[middle].key)
left=middle+1;
else
right=middle-1;
}
return?-1;
}
void?main()
{
Jobtype?*a=new?Jobtype[N];
int?nxkey;
cout<<“輸入數組長度:“;
cin>>n;
cout< cin>>x;
cout<<“輸入數組元素值:“< for(int?i=1;i<=n;i++)
{
cout<<“a[“<“;
cin>>key;
a[i].h(keyi);
}
//數組元素785491
QuickSort(a1n);
int?k;
k=BinarySearch(axn);
if(k==-1)
cout<<“沒有x值?!?
else
{
cout<<“比待搜索值x小的最大值位置:“;
cout< cout<<“比待搜索值x大的最小值位置:“;
cout< }
cout< }
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1472??2008-06-08?09:10??二分搜索.cpp
-----------?---------??----------?-----??----
?????????????????1472????????????????????1
- 上一篇:atmega64bootload
- 下一篇:數字電路課程設計—交通燈
評論
共有 條評論