۰
subtitle
ارسال: #۱
تست (جستجو در ماتریس) طراحی الگوریتم سال ۸۹
![[تصویر: 62236_1_1379096101.png]](https://img.manesht.ir/62236_1_1379096101.png)
گزینه درست ۲nشده حداکثر مقایسه برای پیدا کردن xچون در صورت وجود گفته nهست ضریب ۲ برای چی؟؟؟؟
(۲۰ دى ۱۳۹۰ ۰۲:۳۱ ب.ظ)vijay نوشته شده توسط:ماتریس زیرو فرض کن. که تقریبا به اون ترتیبی که گفته مرتب شده.
گزینه درست ۲nشده حداکثر مقایسه برای پیدا کردن xچون در صورت وجود گفته nهست ضریب ۲ برای چی؟؟؟؟
(۲۰ دى ۱۳۹۰ ۰۷:۱۳ ب.ظ)vijay نوشته شده توسط: یعنی الگورریتم ما عدد xرا بااعداد اول و آخر هرسطر مقایسه میکنه بین آنها نبود میره سطر بعد همینطور تا آخر.بعد اگه در سطری با این روش پیدا شد میره سراغ ستونش که همون nتا ستون میشه حداکثر و میشه ۲n.
استدلال من اینه از جواب شما دوست عزیز درسته؟؟؟
(۲۰ دى ۱۳۹۰ ۰۸:۵۵ ب.ظ)admin نوشته شده توسط: البته بدترین حالت به صورت زیر هست:اگه تو ماتریس شما اول ستونو بگرده بعد سطرو باز جواب کمتر از ۲n میشه.
۰۴ ۰۳ ۰۲ ۰۱
۰۸ ۰۷ ۰۶ ۰۵
۱۲ ۱۱ ۱۰ ۰۹
۱۶ ۱۵ ۱۴ ۱۳
حالا فرض کنید که میخوایم ۱۵ رو پیدا کنیم.
الگوریتم درست توی این مساله به صورت اریب حرکت میکنه. اگه گفتین چه شکلی؟
با الگوریتم قبلی ۳n زمان میبره!
(۲۰ دى ۱۳۹۰ ۰۹:۲۹ ب.ظ)sasanlive نوشته شده توسط: روش مرتب سازی ماتریس شما فرق میکنه با روش مرتب سازی شده در ماتریس من.خوب چطوری مینویسی آخر سر؟ اول ستون یا اول سطر؟ الگوریتم شما در بدترین شرایط پیچیدگیش ۳n-1 است.
در ماتریس که من نوشتم ستونها رو برحسب دهگانی که دارن متمایز کرده و سطرها رو بر حسب یکانی که دارن متمایز کرده. ولی در ماتریس شما چون این ترتیب وجود نداره این حالت پیش اومده.
میتونیم الگوریتمی جوری بنویسیم که طبق روش مرتب سازی ما ماترسیو جستجو کنه. و مثلا اگر مثله ماتریس شما نشه ستونها رو بر حسب دهگان متمایز کرد و اعداد شبیه هم در دهگان بوجود بیاد اونوقت اول ستونها رو جستجو کنه.
(۲۰ دى ۱۳۹۰ ۰۹:۴۹ ب.ظ)admin نوشته شده توسط: خوب چطوری مینویسی آخر سر؟ اول ستون یا اول سطر؟ الگوریتم شما در بدترین شرایط پیچیدگیش ۳n-1 است.
چطوری میخوای بفهمی که شکل ماتریس چجوریه؟
الگوریتم دقیق اینطوریه:
به صورت اریب از بالا شروع میکنیم به مقایسه. اگه برابر بود که حله اگه نبود چی؟ اولین مقدار بیشتر از x این کار رو میکنیم: همه ستونهای بالای اون جا و سطهای سمت چپش رو بررسی میکنیم.
پیچیدگی الگوریتم: حداکثر به اندازه قطر ماتریس که میشه n + تعداد اعداد ستون بالای اون مکان + تعداد اعداد سطر چپش که در مجموع این تعداد برابر n + n میشه
(۲۰ دى ۱۳۹۰ ۱۰:۱۵ ب.ظ)sasanlive نوشته شده توسط: باید هم در ستون و هم در سطر الگوریتمی برای مرتب سازی نوشته شده باشه.
(۲۰ دى ۱۳۹۰ ۱۰:۲۸ ب.ظ)admin نوشته شده توسط: ماتریس من هم تو سطر و هم تو ستون مرتبه.
(۲۰ دى ۱۳۹۰ ۱۰:۲۸ ب.ظ)admin نوشته شده توسط: الگوریتم دقیق اینطوریه:
به صورت اریب(قطری) از بالا شروع میکنیم به مقایسه. اگه برابر بود که حله اگه نبود چی؟ اولین مقدار بیشتر از x این کار رو میکنیم: همه ستونهای بالای اون جا و سطهای سمت چپش رو بررسی میکنیم.
پیچیدگی الگوریتم: حداکثر به اندازه قطر ماتریس که میشه n + تعداد اعداد ستون بالای اون مکان + تعداد اعداد سطر چپش که در مجموع این تعداد برابر n + n میشه
(۲۰ دى ۱۳۹۰ ۱۰:۱۵ ب.ظ)sasanlive نوشته شده توسط: شما ماتریسو فقط پشت سره هم نوشتین و الگوریتم مرتب سازی خاصی روش پیاده سازی نشده. باید هم در ستون و هم در سطر الگوریتمی برای مرتب سازی نوشته شده باشه. چون مسئله گفته هم در ستون و هم در سطر مرتب سازی صورت گرفته.ماتریسهای مثال من هر دو تا هم در سطر و هم در ستون مرتب هستند
(۲۰ دى ۱۳۹۰ ۱۰:۵۵ ب.ظ)admin نوشته شده توسط: ماتریسهای مثال من هر دو تا هم در سطر و هم در ستون مرتب هستند
(۲۰ دى ۱۳۹۰ ۱۰:۳۵ ب.ظ)pos نوشته شده توسط: نمیشه با مقایسه آخرین عنصر هر سطر، ابتدا هر سطر را پیدا کنیم (همان مرتبه n) و بعد که سر پیدا شد با مرتبه Logn عنصر مورد نظر را پیدا کنیم. اسم این جستجویی که Logn بود یادم رفت.نه
(۲۰ دى ۱۳۹۰ ۱۱:۰۷ ب.ظ)sasanlive نوشته شده توسط: من هر چی از روش شما میرم به حالتهای نقض برمیخورم.خودم که گفتم روش من غلطه. در صورتی که ماتریس مرتب کامل باشه بدیهیه که با ۲logn میشه حلش کرد. در واقع اگه اونطوری مرتب باشه فرقی با حالت مرتب ساده نداره. توی فرض مساله تنها ذکر کرده که سطرها و ستونها مرتب هستند. و ماتریس مثال من با این فرض تناقضی نداره. همه سطرها مرتب و همه ستونها مرتب هستند. در ضمن در فرض مساله یه چیز باحال هم نیست و اون هم یکتایی هر مقدار است.
(۲۱ دى ۱۳۹۰ ۰۲:۱۴ ق.ظ)admin نوشته شده توسط:(20 دى ۱۳۹۰ ۱۱:۰۷ ب.ظ)sasanlive نوشته شده توسط: من هر چی از روش شما میرم به حالتهای نقض برمیخورم.خودم که گفتم روش من غلطه. در صورتی که ماتریس مرتب کامل باشه بدیهیه که با ۲logn میشه حلش کرد. در واقع اگه اونطوری مرتب باشه فرقی با حالت مرتب ساده نداره. توی فرض مساله تنها ذکر کرده که سطرها و ستونها مرتب هستند. و ماتریس مثال من با این فرض تناقضی نداره. همه سطرها مرتب و همه ستونها مرتب هستند. در ضمن در فرض مساله یه چیز باحال هم نیست و اون هم یکتایی هر مقدار است.
(۲۱ دى ۱۳۹۰ ۰۹:۴۵ ق.ظ)sasanlive نوشته شده توسط: اگه شما هم بعد مرتب سازی ماتریستونو به شکل ماتریس من به صورت ستونی پر کنین به شکل زیر در میاد.اگه ماتریس رو بخوایم خودمون پر کنیم پیچیدگی ار درجه n^2 میشه. لطفاً به فرض مساله دقت کنید. ما فقط میدونیم که سطرها و ستونها مرتب هستند. ما مرتب سازی رو انجام نمیدیم که بتونیم شیوه مرتب کردن رو تعیین کنیم.
(۲۱ دى ۱۳۹۰ ۰۷:۱۵ ب.ظ)admin نوشته شده توسط: تو این ماتریس
۰۴ ۰۳ ۰۲ ۰۱
۱۳ ۱۰ ۰۶ ۰۲
۱۵ ۱۱ ۱۰ ۰۳
۱۶ ۱۵ ۱۴ ۰۴
۱۳ رو چطوری پیدا میکنه؟
(۲۱ دى ۱۳۹۰ ۰۷:۳۳ ب.ظ)Ali-B نوشته شده توسط: من که هر چی به خودم فشار آورم، نتونستم حلش کنم، آخرش رفتم جوابش تو کتاب تستم نگاه کردم و خلاص، البته تا یه جایی درست رفته بودم (جستجو روی قطر ماتریس). اگه دوست دارید جوابش بنویسم؟