• 大小: 833 Bytes
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-08-17
  • 语言: 其他
  • 标签:

资源简介

小算法,感觉还是可以的,对于初学算法的朋友应该有用的,喜欢的朋友顶一下

资源截图

代码片段和文件信息

#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


评论

共有 条评论