sa1378
چهارشنبه 18 تیر 1393, 15:32 عصر
سلام
من یه کد جستجوی باینری نوشتم:
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int size=15;
int a[size];
for(int k=0;k<=14;k++)
{
a[k]=k*5;
}
int key=11;
int low=0;
int high=size-1;
int middle=0;
int result=0;
for(int i=size;i>=1;i--)
{
for(int j=1;j<=i;i++)
{
if(a[j]>a[j-1])
{
int hide=a[j];
a[j]=a[j-1];
a[j-1]=hide;
}
}
}
for(;low<=high;)
{
middle=(low+high)/2;
if(key==a[middle])
{
cout<<"key found in "<<middle<<" array."<<endl;
result=1;
break;
}
else if (key<a[middle])
high=middle-1;
else if (key>a[middle])
low=middle+1 ;
}
if (result==0)
cout<<"key not found"<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
این کد موقع اجرا چیزی نمایش نمیده
ولی وقتی کد sort رو برمیدارم درست میشه
for(int i=size;i>=1;i--)
{
for(int j=1;j<=i;i++)
{
if(a[j]>a[j-1])
{
int hide=a[j];
a[j]=a[j-1];
a[j-1]=hide;
}
}
}
این از اول آرایه هاش مرتب شده هستن ولی چرا این قسمت مشکل داره؟
من یه کد جستجوی باینری نوشتم:
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int size=15;
int a[size];
for(int k=0;k<=14;k++)
{
a[k]=k*5;
}
int key=11;
int low=0;
int high=size-1;
int middle=0;
int result=0;
for(int i=size;i>=1;i--)
{
for(int j=1;j<=i;i++)
{
if(a[j]>a[j-1])
{
int hide=a[j];
a[j]=a[j-1];
a[j-1]=hide;
}
}
}
for(;low<=high;)
{
middle=(low+high)/2;
if(key==a[middle])
{
cout<<"key found in "<<middle<<" array."<<endl;
result=1;
break;
}
else if (key<a[middle])
high=middle-1;
else if (key>a[middle])
low=middle+1 ;
}
if (result==0)
cout<<"key not found"<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
این کد موقع اجرا چیزی نمایش نمیده
ولی وقتی کد sort رو برمیدارم درست میشه
for(int i=size;i>=1;i--)
{
for(int j=1;j<=i;i++)
{
if(a[j]>a[j-1])
{
int hide=a[j];
a[j]=a[j-1];
a[j-1]=hide;
}
}
}
این از اول آرایه هاش مرتب شده هستن ولی چرا این قسمت مشکل داره؟