۰
subtitle
ارسال: #۱
  
روش تبدیل یک لیست صعودی از اعداد به max heap
روش تبدیل یک لیست صعودی از اعداد به max heap
۰
ارسال: #۲
  
RE: روش تبدیل یک لیست صعودی از اعداد به max heap
سلام
از اخرین نود داخلی یعنی ۷ تابع heapfiy را فراخوانی می کنیم تا ریشه(شروع ارایه از ۱)
با فراخوانی heapify رو ۷ باعث تعویض ۷ با تنها فرزندش یعنی ۱۴ می شود (تا اینجا در مکان هفتم عدد ۱۴ قرار دارد)
با فراخوانی رو ۶ عدد ۱۳ با ۶ جابجا می شود
به همین ترتیب روی ۵ و ۴ فراخوانی می کنیم که ۵ با ۱۱ و ۴ با ۹ تعویض می شود
با فراخوانی روی ۳ که الان دو فرزند ۱۴(در مکان هفتم) و ۱۳ دارد ۳ با ۱۴ تعویض می شود(تا اینجا در مکان ۷ عدد ۳ قرار دارد) دوباره با فراخوانی روی ۳ باعث تعویض با ۷ می شود(دوباره ۷ در مکان ۷ قرار می گیرد)
با فراخوانی روی ۲ هم ۱۱ به مکان دوم می رود و...
با فراخوانی روی یک(ریشه) که الان دو فرزند ۱۴ و ۱۱ دارد یک با ۱۴ تعویض می شود به صورت بازگشتی تابع روی عدد۱(در مکان ۳) فراخوانی میشود که دو فرزند ۱۳ و ۷ دارد پس یک با ۱۳ تعویض می شودو بعد از ان با ۱۲
پس در مکان هفتم همان ۷ در نهایت باقی می ماند.گزینه ۳
از اخرین نود داخلی یعنی ۷ تابع heapfiy را فراخوانی می کنیم تا ریشه(شروع ارایه از ۱)
با فراخوانی heapify رو ۷ باعث تعویض ۷ با تنها فرزندش یعنی ۱۴ می شود (تا اینجا در مکان هفتم عدد ۱۴ قرار دارد)
با فراخوانی رو ۶ عدد ۱۳ با ۶ جابجا می شود
به همین ترتیب روی ۵ و ۴ فراخوانی می کنیم که ۵ با ۱۱ و ۴ با ۹ تعویض می شود
با فراخوانی روی ۳ که الان دو فرزند ۱۴(در مکان هفتم) و ۱۳ دارد ۳ با ۱۴ تعویض می شود(تا اینجا در مکان ۷ عدد ۳ قرار دارد) دوباره با فراخوانی روی ۳ باعث تعویض با ۷ می شود(دوباره ۷ در مکان ۷ قرار می گیرد)
با فراخوانی روی ۲ هم ۱۱ به مکان دوم می رود و...
با فراخوانی روی یک(ریشه) که الان دو فرزند ۱۴ و ۱۱ دارد یک با ۱۴ تعویض می شود به صورت بازگشتی تابع روی عدد۱(در مکان ۳) فراخوانی میشود که دو فرزند ۱۳ و ۷ دارد پس یک با ۱۳ تعویض می شودو بعد از ان با ۱۲
پس در مکان هفتم همان ۷ در نهایت باقی می ماند.گزینه ۳
ارسال: #۳
  
RE: روش تبدیل یک لیست صعودی از اعداد به max heap
ارسال: #۴
  
RE: روش تبدیل یک لیست صعودی از اعداد به max heap
(۱۸ فروردین ۱۳۹۶ ۰۹:۳۵ ق.ظ)peace2013 نوشته شده توسط: ممنونم از جوابتونسلام
(۱۸ فروردین ۱۳۹۶ ۰۲:۱۹ ق.ظ)msour44 نوشته شده توسط: از اخرین نود داخلی یعنی ۷ تابع heapfiy را فراخوانی می کنیم تا ریشه(شروع ارایه از ۱)همیشه باید از آخرین نود داخلی شروع کنیم؟؟
استفاده از واژه همیشه کمی خطرناک است ولی رویه معمول که در کتاب های کورمن و قدسی هم به ان اشاره شده شروع از اخرین نود داخلی است درواقع برگ ها خود خاصیت هیپ دارند.
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close