(۲۹ بهمن ۱۳۸۹ ۰۴:۱۶ ب.ظ)alavinejad نوشته شده توسط: به نظر من چون گفته بود عنصر iام ارایه، با زمان یک میشه دسترسی داشت بهش و حذفش می کنیم بعد عنصر اخر می زاریم جای اون و heapify رو اجرا می کنیم که میشه logn
دقیقا همینه
(۲۹ بهمن ۱۳۸۹ ۰۴:۲۴ ب.ظ)Maryam-X نوشته شده توسط: alavinejad جان:
یه سوال:شما عنصر iام هیپ رو از کجا تشخیص می دی؟(عنصر اام هیپ را خواسته بود نه آرایهی مرتب)
به نظرم فقط اولین عنصر هیپ(ماکس)پیداست و آخرین عنصر هم فقط می دونیم توی برگ هاست.
بقیه رو هم می دونیم بین سطح ۲ تا i قرار گرفتند ولی دقیق جاشون رو نمی دونیم.
بچهها این مسئله از راه های متفاوت حل میشه با جواب های متفاوت
زیاد بهش گیر ندید
صد در صد بستگی داره به اینکه منظور خود طراح سوال چی بوده.
عنصر iام هیپ، همون عنصر iام آرایه است. درسته که بین همزادها ترتیبی نیست. اما مقصود از عنصر iام هیپ، i امین بزرگترین (در MaxHeap) عنصر نیست. بلکه i امین عضو هست که در مکان iام آرایه است.
با ۱ بار (مرتبه ۱) عنصر iام رو پیدا می کنیم.
با ۱ بار اون رو حذف می کنیم و عنصر nام رو جایگزین می کنیم.
با log(n بار این عنصر رو با فرزندانش جابجا می کنیم تا هیپ بشه
(۲۹ بهمن ۱۳۸۹ ۰۵:۵۲ ب.ظ)mmpf نوشته شده توسط: اون سوال رو منم logn زدم.چون فقط ریشه رو حذف میکنیم تو heap .پس حذف (۱)O وبعد از اون هم با logn مرتب میکنیم که heap باقی بمونه.وکلش میشه (logn) .ونیازی به ساخت دوباره نیست.
پاسخ تون درسته، اما ریشه نباید حذف بشه، بلکه عنصر iام باید حذف بشه. شانس آوردی کنکور تشریحی نیستها
نقل قول: اون تعداد ضربها رو چند زدید؟من (۴t(n^2رو زدم. اون سوال که گفته بود مرتب سازی تو ۰ تا n^2 از مرتبه چند میشه رو چند زدید؟؟
این سوال رو من گزینه O(n زدم چون از رادیکس می شه استفاده کرد. radix sort که مرتبه اش دراین مورد n هست. این سوال سال ۸۸ آی تی اومده بود