زمان کنونی: ۰۸ اردیبهشت ۱۴۰۳, ۰۶:۵۴ ب.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

حذف یک عنصر دلخواه از heap

ارسال:
  

T.A پرسیده:

حذف یک عنصر دلخواه از heap

حذف یک عنصر دلخواه از heap از چه مرتبه ای هست و چگونه انجام می شه؟
(توی کتاب مقسمی نوشته از مرتبه O(n هست.
و یه جای دیگه گفته "جست و جو و یافتن عنصر بعدی" از مرتبه O(nlogn
چرا و چجوری؟ Rolleyes
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

mahdiii پاسخ داده:

RE: حذف یک عنصر دلخواه از heap

[quote='T.A' pid='154781' dateline='1358510584']
حذف یک عنصر دلخواه از heap از چه مرتبه ای هست و چگونه انجام می شه؟
(توی کتاب مقسمی نوشته از مرتبه O(n هست.
و یه جای دیگه گفته "جست و جو و یافتن عنصر بعدی" از مرتبه O(nlogn
چرا و چجوری؟
نگاه گنید اگه شما می خواین ریشه هیپ را حذف کنین مرتبه میشه log. به این دلیل که شما ابتدا ریشه رو حذف می کنین و سپس آخرین نودو جایگزین اون می کنین و از ریشه جدید شروع می کنین و با مقایسه بین دو فرزندش، بزرگتر رو انتخاب می کنین و جای اونو با ریشه عوض می کنین و این کار رو در طول مسیر انجام میدید تا هیپ به شکل صحیح دربیاد که به علت اینکه ارتفاع هیپ log ای هست میشه log.
اما اگه یه عنصر دلخواه رو می خواید حذف کنید که نمی دونید کجاست یا اصلا هست یا نه. باید اولش پیداش کنین و سپس اونو به عنوان ریشه فرضی درنظر بگیرین و همون کارای بالا رو برای این زیردرخت انجام بدین. بنابراین مرتبه میشه جستجوی عنصر O(n) و سپس حذف اون log که بنابراین میشه O(n+logn) یا O(n)
O(nlogn) زمانی هست که می خواید عناصر رو تک تک از ریشه حذف کنین که برای مرتب سازی با هیپ کاربرد داره.
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

T.A پاسخ داده:

حذف یک عنصر دلخواه از heap

از جوابتون ممنون! Smile
فقط منظورم از جست و جو و یافتن عدد بعدی ،پیدا کردن عدد بعدی (کوچکترین عدد بزرگتر از X) در هیپ هست که اقای مقسمی توی کتابش مرتبه اش رو (O(nlogn گفته!
لطفا در مورد این یکی هم اگه میتونید توضیح بدین.
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

mahdiii پاسخ داده:

حذف یک عنصر دلخواه از heap

چطور گفته nlogn ?!!
به نظر من در درخت Heap برخلاف درخت جستجوی دودویی که کوچکترین عدد بزرگتر می تونه log ای به دست بیاد به شرط اونکه هر گره اشاره گر به پدر نیز داشته باشه اون نمی تونه بنا به خاصیتش. شما فرض کنین می خواین کوچکترین عدد بزرگتر از x را در هیپ بیابین اون می تونه هر جایی باشه پس اگه جای x رو نمی دونین باید با o(n) بیابین و سپس با o(n) دنبال کوچکترین عدد بزرگتر از x بگردین. پس میشه o(n) ?!!
به این دلیل پس از یافتن x پیدا کردن کوچکترین عدد بزرگتر از x میشه اوی n چون تنها کافیه شما هر گره رو با x مقایسه کنین و عدد موردنظرو پیدا کنین.

در ضمن یه چیزو یادم رفت بگم اگه نود x ریشه درخت ماکس هیپ باشه اونوقت حتما بزرگترین عدد کوچکتر از x میشه یکی از فرزنداش و اگه x در سطح ۲ باشه اونوقت بزرگترین عدد کوچکتر از آن میشه یکی از دو فرزندهاش و یا برادرش و یا یکی از بچه های برادرش، همین طور الی..
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

csharpisatechnology پاسخ داده:

حذف یک عنصر دلخواه از heap

(o(lgn
=========
جزوه ی قدسی
ص ۶۵
--
توی PDF میشه صفحه ی ۹۱
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

csharpisatechnology پاسخ داده:

حذف یک عنصر دلخواه از heap

پیاده سازی هیپ میشه o(n
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  حذف اکانت Alireza_1387 ۴ ۵,۲۷۶ ۱۴ آذر ۱۴۰۱ ۰۸:۲۱ ب.ظ
آخرین ارسال: shirin.kh90
  حذف درس برای خواندن کنکور ارشد sima84 ۴ ۴,۵۲۰ ۲۶ اردیبهشت ۱۳۹۹ ۰۹:۰۰ ب.ظ
آخرین ارسال: عزیز دادخواه
  فصل HEAP از کتاب ساختمان داده طورانی (پارسه) tourani ۳۷ ۳۶,۶۴۴ ۱۲ اسفند ۱۳۹۸ ۰۵:۱۹ ب.ظ
آخرین ارسال: hossein4070
  حذف از b tree کمک لطفا Sanazzz ۰ ۱,۶۶۴ ۱۱ بهمن ۱۳۹۷ ۰۹:۳۴ ب.ظ
آخرین ارسال: Sanazzz
  محاسبه چندمین عنصر آرایه Mr.R3ZA ۶ ۶,۱۶۰ ۱۹ شهریور ۱۳۹۷ ۰۸:۱۲ ب.ظ
آخرین ارسال: Saman
  حذف ضمیر موصولی ☹ jinubo ۲ ۶,۶۵۲ ۰۱ اردیبهشت ۱۳۹۷ ۰۶:۴۳ ب.ظ
آخرین ارسال: jinubo
  kمین کوچکترین عنصر در یک هرم کمینه؟ Iranian Wizard ۳ ۳,۹۹۵ ۰۳ بهمن ۱۳۹۶ ۰۵:۰۸ ق.ظ
آخرین ارسال: molayi
  سوالی از max-heap sir_ams ۳۳ ۲۱,۷۱۴ ۲۸ دى ۱۳۹۶ ۰۲:۳۴ ب.ظ
آخرین ارسال: سیمول
  حذف اضطراری دو درس در ارشد asalimi ۰ ۲,۳۹۱ ۰۸ آذر ۱۳۹۶ ۰۲:۳۲ ق.ظ
آخرین ارسال: asalimi
  حذف وزارت علوم H-Arshad ۰ ۱۰ ۲۱ آبان ۱۳۹۶ ۰۱:۵۲ ب.ظ
آخرین ارسال: H-Arshad

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close