该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
// test8.cpp : 定义控制台应用程序的入口点。
//以下是一个将一个含12个元素的无序数组排列后再用二分法找到数字在第几位的程序
#include "stdafx.h"
#include "iostream"
using namespace std;
void go(int [],int );
int search(int [],int,int);
void main()
{
int str[]={45,98,11,25,6,99,87,18,84,12,49,101};
for(int i=0;i<12;i++)
{
cout<
}
cout<
go(str,12);
for(int i=0;i<12;i++)
{
cout<
}
int data;
cout<
cin>>data;
int check;
check=search(str,data,12);
if(check==12)
{cout<
else cout<在数组的第位"<
}
void go(int a[],int n)
{
int i,j;
int swap;
for(i=0;i
{
for(j=0;j
{
if(a[j]>a[j+1])
{
swap=a[j];
a[j]=a[j+1];
a[j+1]=swap;
}
}
}
}
int search(int a[],int num,int n)
{
int head=0,tail=n-1;
int i;
while(head<=tail)
{
i=(head+tail)/2;
if(a[i]==num)
{return i+1;}
if(a[i]>num)
{
tail=i+1;
}
else head=i-1;
}
return n;
}