[問題] 利用binary search在一個128數字的陣列
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
c++
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
void generate_number(int [],int);
void bubble_sort(int [],int);
bool binary_search(int [],int ,int &);
int main(void)
{
int a[128];
int n=128;
int x;
int p;
bool found;
srand(time(0));
generate_number(a,n);
bubble_sort(a,n);
while(1)
{
cout<<"輸入要找的資料";
cin>> x;
found=binary_search(a,x,p);
if(found)
cout<<"存放於"<<p+1<<"個位子";
else
cout<<"找不到";
system("pause");
}
return 0;
}
void generate_number(int a[],int n)
{
int i;
for(i=0;i<n;i++)
a[i] = rand() % 200+1;
}
void bubble_sort(int a[],int n)
{
int i,j,b,temp;
b=4;
for(i=0;i<b-1;i++)
for(j=0;j<(b-i-1);j++)
if(a[j] >a[j+1])
{
temp=a[j];
a[j]= a[j+1];
a[j+1]=temp;
}
}
bool binary_seerch(int a[],int x ,int &p)
{
int w=0, y=128;
while(w < y)
{
int mid =( w + y) / 2;
if (a[mid] < x)
y = mid + 1;
else if (a[mid] > x)
w = mid - 1;
else if (a[mid] == x)
return &p;
}
}
不知道錯
在哪麻煩各位幫忙
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.160.176.25
→
03/08 22:52, , 1F
03/08 22:52, 1F
→
03/08 23:18, , 2F
03/08 23:18, 2F
→
03/09 04:10, , 3F
03/09 04:10, 3F