您的位置:首页 > 编程语言 > C语言/C++

[C++]关于选择排序和二分法的举例

2008-06-01 17:09 465 查看
#include "iostream.h"
#include "time.h"
#include "stdlib.h"

void print(int a[])
{
for(int i=0; i<10; i++)
cout<<a[i]<<" ";
cout<<endl;
}

void main()
{
int a[10];
srand(time(NULL));
for(int i=0; i<10; i++)
a[i] = rand() % 101;
print(a);

int min, t, j;
for(i=0; i<9; i++)
{
min = i;
for(j=i+1; j<9; j++)
if(a[min]>a[j])
min = j;
t = a[min];
a[min] = a[i];
a[i] = t;
}

print(a);

int n;
cout<<"please input a number: ";
cin>>n;

int low=0, high=9, mid;
while(low<=high)
{
mid=(low+high)/2;
if(n==a[mid])
break;
else if(n<a[mid])
high = mid - 1;
else
low = mid + 1;
}
cout<<mid<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: