چطوری میشه تو آرایه های دو بعدی سرچ دودویی کنیم (مثلا یک عدد از کاربر بگیره و بگه تو کدوم خونه ی آرایه دوبعدی قرار داره ) ممنون میشوم جواب بدید لازمش دارم .
Printable View
چطوری میشه تو آرایه های دو بعدی سرچ دودویی کنیم (مثلا یک عدد از کاربر بگیره و بگه تو کدوم خونه ی آرایه دوبعدی قرار داره ) ممنون میشوم جواب بدید لازمش دارم .
سلام من جست و جوی یک بعدیشو بلدم 2 بعدی هم احتمالا با یکم تغییر درست میشه
bsearch(element list[],int len,int num) H
{
int mid, (onsore miyani) limit1=0, (nesfe avale araye) limit2=len-1; (nesfe dovome araye) H
while(limit1<=limit2) H
{ H
mid=(limit1+limit2)/2; H
if(num<list[mid]) H
limit2=mid-1; H
else if(num>list[mid]) H
limit1=mid+1; H
}
کار برنامه اینه که ارایه رو به 2 قسمت تقسیم میکنه اکه عددی که گرفتی کوچکتر از عنصر وسطی بود قسمت اول سرچ میکنه و انتهای ارایه رو وسط ارایه در نظر میگیره و برعکس اگه قسمت دوم بود ابتدای ارایه رو وسط + 1 در نظر میگیره ( نکته: ارایه باید مرتب باشه برای این نوع سرچ)
فکر کنم این زبان وی بی نباشه (من واسه ویژوال بیسیک نیاز دارم ) ممنون از کمکتوننقل قول:
این برنامه ای که دادم c++ بود
جستجو باینری در یک آرایه تک بعدی بصورت زیر هست:
(فرض می کنیم اسم آرایه x و تعداد عناصر آن 100 و بدنبال searchkey هستیم و آرایه مرتب شده است)
امیدوارم مفید باشه و با توجه به این واسه آرایه دوبعدی هم بنویسیکد:searchkey=val(text1)
l=1:r=100:blnfound=false
do while not blnfound and l<=r
m=(l+r)\2
if x(m)=searchkey then
.
.
.
blnfound=true
else if searchkey>x(m) then
l=m+1
else
r=m-1
end if
loop
این ماله جستجو در آرایه یک بعدی به روش دودویی (باینری ) هست . ممنون ولی در آرایه دوبعدیش را میخواستم
2 بعدی رو چطوری می خوای مرتب کنی بهم بگو تا بهت بگم
دو دویی بر اساس ارایه اول
دودویی بر اساس ارایه دوم
دودویی بر اساس هر دو
من جستجو میخوام نه مرتب سازی