02 دى 1392, 07:38 ب.ظ
سلام.
به منظور سورت صعودی یک ارایه از هیپ سورت استفاده نموده و ماکس هیپ میسازیم. در مورد زمان اجرا این الگوریتم کدام گزینه صحیح است؟؟
1- اگر آرایه از ابتدا به صورت صعودی مرتب باشد زمان مورد نیاز ( O(n است.
2- اگر آرایه از ابتدا به صورت نزولی مرتب باشد زمان مورد نیاز ( O(n است.
3- اگر آرایه از ابتدا به صورت نزولی مرتب باشد زمان مورد نیاز n^2logn است.
4- اگر آرایه از ابتدا به صورت صعودی مرتب باشد زمان مورد نیاز nlogn است.
--سوال اولم اینه که مگه برای مرتب کردن صعودی از مین هیپ استفاده نمیکردیم؟؟ چرا اینجا گفته ماکس هیپ؟!
--سوال دومم هم اینه که چرا گزینه 2 درست نیست؟ گزینه 4 رو میدونم درسته...
واسه گزینه 2:
در حالت عادی میدونیم که وقتی در هیپ درج میکنیم باید تا جای ممکن با پدرش تعویض کنیم تا هیپ باقی بمونه. هزینه درج 1 و هزینه مرتب کردن logn میشه و هزینه n بار درج (و در صورت نیاز جابجایی برای مرتب کردن) میشه nlogn
اما اینجا
میدونیم که یک آرایه نزولی، یک ماکس هیپه. خوب وقتی از اول مرتب شده رو داریم فقط کافیه هزینه درج رو بپردازیم نه هزینه مرتب کردن رو. که هزینه درج هر عنصر از یک آرایه مرتب نزولی در یک ماکس هیپ هم میشه( O(1
و برای درج n تا عنصر میشه ( O(n
درسته؟؟
به منظور سورت صعودی یک ارایه از هیپ سورت استفاده نموده و ماکس هیپ میسازیم. در مورد زمان اجرا این الگوریتم کدام گزینه صحیح است؟؟
1- اگر آرایه از ابتدا به صورت صعودی مرتب باشد زمان مورد نیاز ( O(n است.
2- اگر آرایه از ابتدا به صورت نزولی مرتب باشد زمان مورد نیاز ( O(n است.
3- اگر آرایه از ابتدا به صورت نزولی مرتب باشد زمان مورد نیاز n^2logn است.
4- اگر آرایه از ابتدا به صورت صعودی مرتب باشد زمان مورد نیاز nlogn است.
--سوال اولم اینه که مگه برای مرتب کردن صعودی از مین هیپ استفاده نمیکردیم؟؟ چرا اینجا گفته ماکس هیپ؟!
--سوال دومم هم اینه که چرا گزینه 2 درست نیست؟ گزینه 4 رو میدونم درسته...
واسه گزینه 2:
در حالت عادی میدونیم که وقتی در هیپ درج میکنیم باید تا جای ممکن با پدرش تعویض کنیم تا هیپ باقی بمونه. هزینه درج 1 و هزینه مرتب کردن logn میشه و هزینه n بار درج (و در صورت نیاز جابجایی برای مرتب کردن) میشه nlogn
اما اینجا
میدونیم که یک آرایه نزولی، یک ماکس هیپه. خوب وقتی از اول مرتب شده رو داریم فقط کافیه هزینه درج رو بپردازیم نه هزینه مرتب کردن رو. که هزینه درج هر عنصر از یک آرایه مرتب نزولی در یک ماکس هیپ هم میشه( O(1
و برای درج n تا عنصر میشه ( O(n
درسته؟؟