بهترین الگوریتم جستجو را اگه کسی می دونه بزاره(سریع تر از جستجوی باینری)
بهترین الگوریتم جستجو را اگه کسی می دونه بزاره(سریع تر از جستجوی باینری)
الگوریتم Quick Sort از باینری سریعتره بستگی به کارت داره به کتاب طراحب الگوریتم حعفرنژاد یه نگاهی بکن
آن لحظه که تنها اعتبار کسی که مساله ای را مطرح کرده است، شما را در اشتباه بودن ایده هایتان قانع کرد،
آن لحظه،
لحظه وداع شما با دنیای خلاقیت و پیشرفت خواهد بود. . .
برنولی
سلام
فکر کنم بهترین جستجو binarySearch هست که از O (lg n) می باشد ولی داده ها باید sort شده باشد.
Quick Sort برای sort کردن استفاده می شه و در حالت متوسط از O (n log n ) ولی از باینری برای search استفاده می کنند.الگوریتم Quick Sort از باینری سریعتره
ممنونم ازتون اما یه الگوریتم سریعتر سراغ ندارید......
برای اطلاعات بیشتر به کتاب طراحی الگوریتم نوشته مهندس خلیلی مراجعه کن
بهترین متد جستجو در یک ساختمان داده خطی چنانچه ان ساختمان داده از قبل مرتب باشد
الگوریتم جستجوی دودویی است در بهترین حالت دارای مربته زمانی(1)O
می باشد در حالت متوسط LOG N و بدترین حالت N می باشد .
روش های HASH نیز با مرتبه زمانی (1)O نیز موجود می باشند.
QUICK SORT یک روش مرتب سازی داده هاست.
فکر می کنم QUICK SORT سریعترین باشد مگر در حالتی که لیست نزولی یا صعودی باشد که استثنا است
سلام
برای جستجوی دودویی می تونین از درخت های قرمز-سیاه استفاده کنین چون زمان اجرا در آنها در بدترین حالت از O(log n) است.
البته جستجوی روی درخت های B-tree از red-black ها هم سریعتر است ولی باید توجه داشته باشید که B-tree ها برای کار روی دیسک های مغناطیسی یا سایر وسایل ذخیره سازی ثانویه با دسترسی مستقیم هستند و برای داده هایی که در حافظه ذخیره شده اند کاربردی ندارند.
تو چه ساختمان داده ای؟بهترین الگوریتم جستجو را اگه کسی می دونه بزاره(سریع تر از جستجوی باینری)
سرچ رو چجوری با سورت مقایسه می کنن؟!!!الگوریتم Quick Sort از باینری سریعتره
به نظر من هم منطقی ترین جواب به این سوال همینه.روش های HASH نیز با مرتبه زمانی (1)O نیز موجود می باشند.
از چی سریعتره؟ Bubble sort؟فکر می کنم QUICK SORT سریعترین باشد مگر در حالتی که لیست نزولی یا صعودی باشد که استثنا است
سوالی که من اینجا میبینم در مورد ساختمان داده مورد نظر هیچی نگفته، پس سریعترین راه همون Hash با (O(1 هست
دوست عزیز هزینه ایجاد این درختها رو حساب کردید که از خود هزینه جستجو زیادترند؟؟؟؟نوشته شده توسط 3tareh
من آخرش نفهمیدم انجا بحث روی جستجوست یا مرتب سازی ولی اگه موضوع جستجو هست بستگی داره به ساختمان داده مسئله و نحوه چیدمان اعداد ولی اگه مسئله مرتب سازی باز اون هم شرایط بالا رو داره و نیشه گفت همیشه QUICK SORT سریعترین ما برای مرتب سازی الگوریتمی با پیچیدگید n هم داریم
دوست عزیر شما میتوانید به random binary search مراجعه کنید.
هزینه random binary search که در بدترین حالت همون n میشه!دوست عزیر شما میتوانید به random binary search مراجعه کنید.
آرش جان حرف شما کاملا درسته ولی به یک نکته دقت نکردید اونم تتای random binary searchنوشته شده توسط Arashdanger
در این مورد هم کمی فکر کنید اگه کمکی لازم بود من با کمال میل کمکتون می کنم
دوست عزیز همونجوری که مهندس اشاره کرده اشاره من به هزینه متوسطه
به نظر من از باینری سرچ (با احتساب هزینه اش) هیچی بهتر نیست.
برای تعداد کمتر از 20 به ترتیب:
سرعت کم میشود و برای تعداد بیشتر از 20 به ترتیب زیر سرعت مرتب سازی و جستجو کم می شود :
- InsertionSort
- QuickSort
- MergeSort
- HeapSort
- SelectionSort
- BubbleSort
- QuickSort
- MergeSort
- HeapSort
- InsertionSort
- SelectionSort
- BubbleSort
میشه به مرجعی که این مطالب و نوشته اید اشاره کنیدنوشته شده توسط sadaf_m
نوشته شده توسط mohandese_hiclass
من این مطلب رو از جزوه ی ساختمان داده ی ترم پیشم پیدا کردم. ولی اگه بخواین می تونم
در مورد منبعش تحقیق کنم.
و البته فکر میکنم این نتیجه با آزمون و خطا بدست اومده باشه و ممکنه اثبات ریاضی نداشته باشه.
من خودم چنین برنامه ای نوشتم ولی در بعضی موارد با نوشته شما متناقضه اگه مرجعشو لطف کنید خوشحال می شم شاید من اشتباه می کنمنوشته شده توسط sadaf_m
از اونجایی که لیست مرتبا نصف میشه ؛ پس در بدترین حالت یا در جستجوی ناموفق log N میشه (نه n )الگوریتم جستجوی دودویی در بهترین حالت دارای مربته زمانی(1)O
می باشد در حالت متوسط LOG N و بدترین حالت N می باشد .
بستگی داره خوب، هر کدوم در یه زمانی کاربرد داره. این کد همه ی جستوجو هاست:
http://mycollege.ir/forum/index.php/topic,135.0.html
هر کدوم برای زمان و شرایط خاص کاربرد دارن، مثلا وقتی تعداد داده ها زیادن هرمی خوبه و وقتی کمتر از مثلا 40 تا باشن دودیی و ... البته اینارو از خودم گفتم و اشتباه هستن :D
سلام دوستان من ترم 5 کارشناسی نرم افزار هستم در در س طراحی الگوریتم با مشکلی روبه رو شده ام .به نظر شما چه گونه می توان نمودار زمانی برای الگوریتم دودویی با 1000 داده را به دست اورد .
این الگوریتم ها مگه الگوریتم های مرتب سازی نیست؟
یه لینک خوب و جامع برای تحقیق در مورد الگوریتم های سرچ و سرچ در رشته سراغ دارید؟