تالار گفتمان مانشت
یک سوال از مرتب سازی سریع - نسخه‌ی قابل چاپ

یک سوال از مرتب سازی سریع - nasim mehri92 - 01 دى ۱۳۹۱ ۰۸:۴۲ ب.ظ

برای صعودی کردن آرایه ای به طولn که بصورت نزولی مرتب شده است از روش مرتی سازی سریع استفاده می کنیم :اگر همواره کوچکترین عنصر را به عنوان محور انتخاب کنیم مرتبه زمانی آن چند می شود؟
به نظر خودم بدترین حالت نیست به نظر شما این بدترین حالت هست؟

RE: یک سوال از مرتب سازی سریع - nazaninzahra2 - 01 دى ۱۳۹۱ ۰۹:۲۳ ب.ظ

(۰۱ دى ۱۳۹۱ ۰۸:۴۲ ب.ظ)nasim mehri92 نوشته شده توسط:  برای صعودی کردن آرایه ای به طولn که بصورت نزولی مرتب شده است از روش مرتی سازی سریع استفاده می کنیم :اگر همواره کوچکترین عنصر را به عنوان محور انتخاب کنیم مرتبه زمانی آن چند می شود؟
به نظر خودم بدترین حالت نیست به نظر شما این بدترین حالت هست؟

به نظر من بدترین حالته و میشه n^2

یک سوال از مرتب سازی سریع - mahsa.tsi - 01 دى ۱۳۹۱ ۱۰:۴۰ ب.ظ

سلام
بله بدترین حالت هست چون یه زیرآرایه به طول n-1 و دیگری به طول ۱ این بدترین حالته و بنابراین مرتبش O(n) میشه

یک سوال از مرتب سازی سریع - azad_ahmadi - 02 دى ۱۳۹۱ ۰۱:۲۴ ق.ظ

سلام.
دوستان دقت کنید که گفته هربار "کوچک ترین" عنصر رو بعنوان محور در نظر می گیریم.
--------------------------------------------------------------------------------------------
بدترین حالت در مرتب سازی سریع زمانی هست که عناصر بصورت صعودی مرتب شده باشند و بخوایم عناصر رو بصورت صعودی مرتب کنیم. و همچنین بدترین حالت زمانی هست که عناصر نزولی مرتب باشند و بخوایم نزولی مرتب کنیم.
اما سوال گفته که در ابتدا عناصر بصورت نزولی مرتب شده است؛ و ما می خواهیم اون رو بصورت صعودی مرتب کنیم.
پس یعنی مثلا عناصر زیر
۹۸۷۶۵۴۳۲۱
رو بصورت
۱۲۳۴۵۶۷۸۹
مرتب کنیم.
رو داده های زیر امتحان کنید و هر بار کوچکترین عنصر رو محور بگذارید.

(محور عدد ۱)مرحله اول جای ۱ و ۹ عوض میشه. ------> 187654329 (در مرحله بعد ۲ بعنوان لولا انتخاب میشه. درسته که تمام عناصر یک طرف عدد ۱ قرار دارند ولی این ربطی به بدترین حالت نداره).

(محور عدد ۲)مرحله دوم جای ۲ با ۸ عوض میشه------->127654389
(محور عدد ۳)مرحله سوم جای ۳ با ۷ عوض میشه.----->123654789
(محور عدد ۴)مرحله چهارم جای ۴ با ۶ عوض میشه.---->123456789
(محور عدد ۵)مرحله پنجم جای ۵ با ۵ عوض میشه.---->123456789
در مراحل دیگه هم اعداد ۶ و ۷ و ۸ و ۹ با خودشون عوض میشن.

فکر می کنم با بدترین حالت تفاوت داشته باشه و از مرتبه O(n باشه.(مطمئن نیستم).

RE: یک سوال از مرتب سازی سریع - nazaninzahra2 - 02 دى ۱۳۹۱ ۰۱:۲۸ ق.ظ

(۰۲ دى ۱۳۹۱ ۰۱:۲۴ ق.ظ)azad_ahmadi نوشته شده توسط:  سلام.
دوستان دقت کنید که گفته هربار "کوچک ترین" عنصر رو بعنوان محور در نظر می گیریم.
--------------------------------------------------------------------------------------------
بدترین حالت در مرتب سازی سریع زمانی هست که عناصر بصورت صعودی مرتب شده باشند و بخوایم عناصر رو بصورت صعودی مرتب کنیم. و همچنین بدترین حالت زمانی هست که عناصر نزولی مرتب باشند و بخوایم نزولی مرتب کنیم.
اما سوال گفته که در ابتدا عناصر بصورت نزولی مرتب شده است؛ و ما می خواهیم اون رو بصورت صعودی مرتب کنیم.
پس یعنی مثلا عناصر زیر
۹۸۷۶۵۴۳۲۱
رو بصورت
۱۲۳۴۵۶۷۸۹
مرتب کنیم.
رو داده های زیر امتحان کنید و هر بار کوچکترین عنصر رو محور بگذارید.

(محور عدد ۱)مرحله اول جای ۱ و ۹ عوض میشه. ------> 187654329 (در مرحله بعد ۲ بعنوان لولا انتخاب میشه. درسته که تمام عناصر یک طرف عدد ۱ قرار دارند ولی این ربطی به بدترین حالت نداره).

(محور عدد ۲)مرحله دوم جای ۲ با ۸ عوض میشه------->127654389
(محور عدد ۳)مرحله سوم جای ۳ با ۷ عوض میشه.----->123654789
(محور عدد ۴)مرحله چهارم جای ۴ با ۶ عوض میشه.---->123456789
(محور عدد ۵)مرحله پنجم جای ۵ با ۵ عوض میشه.---->123456789
در مراحل دیگه هم اعداد ۶ و ۷ و ۸ و ۹ با خودشون عوض میشن.

فکر می کنم با بدترین حالت تفاوت داشته باشه و از مرتبه O(n باشه.(مطمئن نیستم).
سلام
اگه اینجوری بود که میگفتن بهترین حالت مرتب سازی سریع هستش اوی ان !!! تازه من میرفتم ثبتش میکردم و معروف میشدم ! Tongue

یک سوال از مرتب سازی سریع - azad_ahmadi - 02 دى ۱۳۹۱ ۰۱:۴۱ ق.ظ

خوب تیری در تاریکیه. خواهشا اگه ثبتش کردی حداقل تو پیشگفتاری جایی اسم من رو هم فراموش نشه.Smile
شاید همون بدترین حالت باشه، اما باز مطمئن نیستم. Smile

RE: یک سوال از مرتب سازی سریع - mahsa.tsi - 02 دى ۱۳۹۱ ۱۰:۳۹ ب.ظ

(۰۲ دى ۱۳۹۱ ۰۱:۲۴ ق.ظ)azad_ahmadi نوشته شده توسط:  سلام.
دوستان دقت کنید که گفته هربار "کوچک ترین" عنصر رو بعنوان محور در نظر می گیریم.
--------------------------------------------------------------------------------------------
بدترین حالت در مرتب سازی سریع زمانی هست که عناصر بصورت صعودی مرتب شده باشند و بخوایم عناصر رو بصورت صعودی مرتب کنیم. و همچنین بدترین حالت زمانی هست که عناصر نزولی مرتب باشند و بخوایم نزولی مرتب کنیم.
اما سوال گفته که در ابتدا عناصر بصورت نزولی مرتب شده است؛ و ما می خواهیم اون رو بصورت صعودی مرتب کنیم.
پس یعنی مثلا عناصر زیر
۹۸۷۶۵۴۳۲۱
رو بصورت
۱۲۳۴۵۶۷۸۹
مرتب کنیم.
رو داده های زیر امتحان کنید و هر بار کوچکترین عنصر رو محور بگذارید.

(محور عدد ۱)مرحله اول جای ۱ و ۹ عوض میشه. ------> 187654329 (در مرحله بعد ۲ بعنوان لولا انتخاب میشه. درسته که تمام عناصر یک طرف عدد ۱ قرار دارند ولی این ربطی به بدترین حالت نداره).

(محور عدد ۲)مرحله دوم جای ۲ با ۸ عوض میشه------->127654389
(محور عدد ۳)مرحله سوم جای ۳ با ۷ عوض میشه.----->123654789
(محور عدد ۴)مرحله چهارم جای ۴ با ۶ عوض میشه.---->123456789
(محور عدد ۵)مرحله پنجم جای ۵ با ۵ عوض میشه.---->123456789
در مراحل دیگه هم اعداد ۶ و ۷ و ۸ و ۹ با خودشون عوض میشن.
توجه کنین توی حالت اول n-1 مقایسه انجام شده حالت دوم n-2 و الی آخر که به ۱ ختم بشه مجموع این مقایسه هاO(n^2) میشه.

یک سوال از مرتب سازی سریع - mfXpert - 02 دى ۱۳۹۱ ۱۱:۰۱ ب.ظ

بدترین حالت اتفاق می افته

RE: یک سوال از مرتب سازی سریع - mp1368 - 02 دى ۱۳۹۱ ۱۱:۱۱ ب.ظ

چون کد پارتشین آرایه رو طوری تقسیم میکنه که روال بازگشتی به این صورت فراخوانی بشه : [tex](1,N-1)[/tex]
پس بدترین حالت رخ میده و از مرتبه [tex]O(n^{2})[/tex] است.