-
دوشنبه 07 تیر 1389, 13:43 عصر
#1
کاربر دائمی
جستجوی بهینه با شرایطی خاص
یک ارایه دارم دارای n عنصر
هر عنصر دارای x و y خاص خود است
میخوام برای تمام عناصر مقدار متغیر بولین IsX IsYرو بدست بیارم
IsX هر ایتم وقتی صحیح میباشد که x ان ایتم با یکی از x های دیگر ایتم ها مساوی باشد
به همین نحو Isy
اگر بخوام جستجوی ترتیبی انجام بدم با فرض اینکه در ارایه n تا عنصر که هر عنصر m ایتم داشته باشد
الگوریتم مقدار m*n*m زمان بر خواهد بود که این یعنی فاجعه الگوریتم بهینه برای انجام این کار کدام است؟
-
دوشنبه 07 تیر 1389, 14:51 عصر
#2
کاربر دائمی
نقل قول: جستجوی بهینه با شرایطی خاص
به نظرم خیلی خوب توضیح ندادید و من برداشتی که از حرفاتون کردم رو میگم شایدم درست نباشه !
2 تا راه به ذهن من میرسه :
راه اول : اگر x و y عناصر خیلی بزرگ نیست 2 تا آرایه ی یه بعدی به طول max x و max y در نظر بگیر (مثلاً آرایه ی a و آرایه ی b). وقتی یه آیتم (بنا به تعریف شما) رو میخونی که دارای مشخصات X و Y هستش، به a[X] و b[Y] یکی اضافه کن. بعد از اینکه آیتم ها رو کامل خوندی حالا بیا دوباره از اول آیتم ها رو نگاه کن، برای هر آیتم اگر a[X] بزرگتر از یک بود یعنی isX اون آیتم true هستش و در غیر این صورت false. برای isY هم به همین ترتیب عمل کن. در این حالت پیچیدگیت n*(max x +max y) I هستش.
راه دوم : بیا عناصر هر آرایه رو یه بار بر اساس مقدار x ای که دارن و یه بار هم بر اساس مقدار y ای که دارن مرتب کن. حالا isX یه آیتم وقتی true هستش که یا عنصر قبلش دارای X برابر با خودش باشه یا عنصر بعدش. برای isY هم به همین ترتیب ... در این حالت پیچیدگیت n*m*log m هستش ...
-
دوشنبه 07 تیر 1389, 17:22 عصر
#3
کاربر دائمی
نقل قول: جستجوی بهینه با شرایطی خاص
قوانین ایجاد تاپیک در تالار
- شما نمی توانید تاپیک جدید ایجاد کنید
- شما نمی توانید به تاپیک ها پاسخ دهید
- شما نمی توانید ضمیمه ارسال کنید
- شما نمی توانید پاسخ هایتان را ویرایش کنید
-
قوانین سایت