خیلی از کاربران در مورد برنامه جستجوی دو دویی آرایه در سی پلاس پلاس سوال پرسیده بودند و نحوه کد نویسی رو بیشتر سوال پرسیده بودند در این پست سورس کد جستجوی دو دویی آرایه را آماده کردیم. معمولا یکی از تمرین هایی که اساتید درس برنامه نویسی سی پلاس پلاس میدهند سوال : برنامه ای بنویسید که آرایه ای را از ورودی بگیرد و با استفاده از جستجوی دودویی کلیدی را داخل آرایه جستجو کند هست که این سورس کد جواب این سوال و تمرین می باشد.
این رو هم باید بگویم برای جستجوی دودویی در آرایه حتما باید آرایه مورد جستجو مرتب باشد. حتما این نکته رو در ذهن داشته باشید.
سورس برنامه جستجوی دو دویی آرایه در سی پلاس پلاس
#include<iostream> #include<conio.h> using namespace std; void insert(int[],int); void sort(int[],int); void print(int[],int); int search(int[],int,int); main() { int a[100]; int n,result,key; cout<<"enter number of digits:"; cin>>n; cout<<"\n\n"; insert(a,n); sort(a,n); cout<<"\n\n"<<"after sort array is:\n\n"; print(a,n); cout<<"\n\n"<<"enter a key to search in array:"; cin>>key; result=search(a,n,key); if(result==n) cout<<"\n\n"<<"can not found key."; else cout<<"\n\nkey found =>a["<<result<<"]="<<key; cout<<"\n\n"<<"press any key to exit..."; getch(); return 0; } //********** void insert(int a[],int n) { for(int i=0;i<n;i++) { cout<<"a["<<i<<"]="; cin>>a[i]; } }//end of insert() //********** void sort(int a[],int n) { int i,j,temp; for(i=1;i<n;i++) { for(j=0;j<n-i;j++) { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; }//end of if }//end of enternal for }//end of external for }//end of sort() //********** int search(int a[],int n,int key) { int low=0,high=n-1,mid; while(low<=high) { mid=(low+high)/2; if(a[mid]==key) return mid; if(a[mid]>key) high=mid-1; else low=mid+1; } return n; } //********** void print(int a[],int n) { for(int i=0;i<n;i++) cout<<a[i]<<','; } //> sourceiran.com
دیدگاه کاربران
تعداد دیدگاه های کاربران : ۰ دیدگاه