۰
subtitle
ارسال: #۱
  
حذف یک عنصر دلخواه از heap
حذف یک عنصر دلخواه از heap از چه مرتبه ای هست و چگونه انجام می شه؟
(توی کتاب مقسمی نوشته از مرتبه O(n هست.
و یه جای دیگه گفته "جست و جو و یافتن عنصر بعدی" از مرتبه O(nlogn
چرا و چجوری؟
(توی کتاب مقسمی نوشته از مرتبه O(n هست.
و یه جای دیگه گفته "جست و جو و یافتن عنصر بعدی" از مرتبه O(nlogn
چرا و چجوری؟
۰
ارسال: #۲
  
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) زمانی هست که می خواید عناصر رو تک تک از ریشه حذف کنین که برای مرتب سازی با هیپ کاربرد داره.
حذف یک عنصر دلخواه از heap از چه مرتبه ای هست و چگونه انجام می شه؟
(توی کتاب مقسمی نوشته از مرتبه O(n هست.
و یه جای دیگه گفته "جست و جو و یافتن عنصر بعدی" از مرتبه O(nlogn
چرا و چجوری؟
نگاه گنید اگه شما می خواین ریشه هیپ را حذف کنین مرتبه میشه log. به این دلیل که شما ابتدا ریشه رو حذف می کنین و سپس آخرین نودو جایگزین اون می کنین و از ریشه جدید شروع می کنین و با مقایسه بین دو فرزندش، بزرگتر رو انتخاب می کنین و جای اونو با ریشه عوض می کنین و این کار رو در طول مسیر انجام میدید تا هیپ به شکل صحیح دربیاد که به علت اینکه ارتفاع هیپ log ای هست میشه log.
اما اگه یه عنصر دلخواه رو می خواید حذف کنید که نمی دونید کجاست یا اصلا هست یا نه. باید اولش پیداش کنین و سپس اونو به عنوان ریشه فرضی درنظر بگیرین و همون کارای بالا رو برای این زیردرخت انجام بدین. بنابراین مرتبه میشه جستجوی عنصر O(n) و سپس حذف اون log که بنابراین میشه O(n+logn) یا O(n)
O(nlogn) زمانی هست که می خواید عناصر رو تک تک از ریشه حذف کنین که برای مرتب سازی با هیپ کاربرد داره.
۰
ارسال: #۳
  
حذف یک عنصر دلخواه از heap
از جوابتون ممنون!
فقط منظورم از جست و جو و یافتن عدد بعدی ،پیدا کردن عدد بعدی (کوچکترین عدد بزرگتر از X) در هیپ هست که اقای مقسمی توی کتابش مرتبه اش رو (O(nlogn گفته!
لطفا در مورد این یکی هم اگه میتونید توضیح بدین.
فقط منظورم از جست و جو و یافتن عدد بعدی ،پیدا کردن عدد بعدی (کوچکترین عدد بزرگتر از X) در هیپ هست که اقای مقسمی توی کتابش مرتبه اش رو (O(nlogn گفته!
لطفا در مورد این یکی هم اگه میتونید توضیح بدین.
۰
ارسال: #۴
  
حذف یک عنصر دلخواه از heap
چطور گفته nlogn ?!!
به نظر من در درخت Heap برخلاف درخت جستجوی دودویی که کوچکترین عدد بزرگتر می تونه log ای به دست بیاد به شرط اونکه هر گره اشاره گر به پدر نیز داشته باشه اون نمی تونه بنا به خاصیتش. شما فرض کنین می خواین کوچکترین عدد بزرگتر از x را در هیپ بیابین اون می تونه هر جایی باشه پس اگه جای x رو نمی دونین باید با o(n) بیابین و سپس با o(n) دنبال کوچکترین عدد بزرگتر از x بگردین. پس میشه o(n) ?!!
به این دلیل پس از یافتن x پیدا کردن کوچکترین عدد بزرگتر از x میشه اوی n چون تنها کافیه شما هر گره رو با x مقایسه کنین و عدد موردنظرو پیدا کنین.
در ضمن یه چیزو یادم رفت بگم اگه نود x ریشه درخت ماکس هیپ باشه اونوقت حتما بزرگترین عدد کوچکتر از x میشه یکی از فرزنداش و اگه x در سطح ۲ باشه اونوقت بزرگترین عدد کوچکتر از آن میشه یکی از دو فرزندهاش و یا برادرش و یا یکی از بچه های برادرش، همین طور الی..
به نظر من در درخت Heap برخلاف درخت جستجوی دودویی که کوچکترین عدد بزرگتر می تونه log ای به دست بیاد به شرط اونکه هر گره اشاره گر به پدر نیز داشته باشه اون نمی تونه بنا به خاصیتش. شما فرض کنین می خواین کوچکترین عدد بزرگتر از x را در هیپ بیابین اون می تونه هر جایی باشه پس اگه جای x رو نمی دونین باید با o(n) بیابین و سپس با o(n) دنبال کوچکترین عدد بزرگتر از x بگردین. پس میشه o(n) ?!!
به این دلیل پس از یافتن x پیدا کردن کوچکترین عدد بزرگتر از x میشه اوی n چون تنها کافیه شما هر گره رو با x مقایسه کنین و عدد موردنظرو پیدا کنین.
در ضمن یه چیزو یادم رفت بگم اگه نود x ریشه درخت ماکس هیپ باشه اونوقت حتما بزرگترین عدد کوچکتر از x میشه یکی از فرزنداش و اگه x در سطح ۲ باشه اونوقت بزرگترین عدد کوچکتر از آن میشه یکی از دو فرزندهاش و یا برادرش و یا یکی از بچه های برادرش، همین طور الی..
۰
ارسال: #۵
  
حذف یک عنصر دلخواه از heap
(o(lgn
=========
جزوه ی قدسی
ص ۶۵
--
توی PDF میشه صفحه ی ۹۱
=========
جزوه ی قدسی
ص ۶۵
--
توی PDF میشه صفحه ی ۹۱
۰
موضوعهای مرتبط با این موضوع... |
|||||
موضوع: | نویسنده | پاسخ: | بازدید: | آخرین ارسال | |
حذف اکانت | 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?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close