সিএলআরএস থেকে ডি-আরি হিপ সমস্যা


10

নিম্নলিখিত সমস্যাটি সমাধান করার সময় আমি বিভ্রান্ত হয়ে পড়েছি (1–3 প্রশ্ন)।

প্রশ্ন

একটি ডি- হিরি হিপ বাইনারি হিপগুলির মতো, তবে (একটি সম্ভাব্য ব্যতিক্রম সহ) নন-পাতাগুলি নোডগুলিতে 2 সন্তানের পরিবর্তে ডি বাচ্চা থাকে।

  1. আপনি অ্যারেতে কীভাবে ডি- গিরির উপস্থাপন করবেন ?

  2. N এবং d এর ক্ষেত্রে এন উপাদানগুলির একটি d -ary গাদা উচ্চতা কত ?

  3. এক্সট্রা্যাক্ট-ম্যাক্সকে একটি ডি- মেরি সর্বাধিক হ্যাপে কার্যকর প্রয়োগ দিন । এর চলমান সময়টিকে ডি এবং এন এর ক্ষেত্রে বিশ্লেষণ করুন ।

  4. ডি -রি সর্বাধিক হ্যাপে INSERT এর একটি কার্যকর বাস্তবায়ন দিন । এর চলমান সময়টিকে ডি এবং এন এর ক্ষেত্রে বিশ্লেষণ করুন ।

  5. ইনক্রেস- কে ( এ , আই , কে ) এর একটি কার্যকর প্রয়োগ দিন , যা কে <এ [আই] = কে যদি একটি ত্রুটি চিহ্নিত করে এবং তারপরে ডি -ম্যাট্রিক্স হিপ কাঠামো যথাযথভাবে আপডেট করে । এর চলমান সময়টিকে ডি এবং এন এর ক্ষেত্রে বিশ্লেষণ করুন ।

আমার সমাধান

  1. একটি অ্যারের দাও একজন[একটি1।।একটিএন]

    মূল:একটি1স্তর 1:একটি2...একটি2+ +ঘ-1স্তর 2:একটি2+ +ঘ...একটি2+ +ঘ+ +ঘ2-1⋮স্তর কে:একটি2+ +Σআমি=1ট-1ঘআমি...একটি2+ +Σআমি=1টঘআমি-1

    Not আমার স্বরলিপিটি কিছুটা পরিশীলিত বলে মনে হচ্ছে। অন্য কোন সরল আছে?

  2. যাক জ উচ্চতা উল্লেখ করে ঘ -ary গাদা।

    মনে করুন যে গাদাটি সম্পূর্ণ ডি -ারি গাছ

    1+ +ঘ+ +ঘ2+ +।।+ +ঘজ=এনঘজ+ +1-1ঘ-1=এনজ=ঠণছঘ[এনঘ-1+ +1]-1
  3. এটি আমার বাস্তবায়ন:

    EXTRACT-MAX(A)
    1  if A.heapsize < 1
    2      error "heap underflow"
    3  max = A[1]
    4  A[1] = A[A.heapsize]
    5  A.heap-size = A.heap-size - 1
    6  MAX-HEAPIFY(A, 1)
    7  return max
    
    MAX-HEAPIFY(A, i)
    1  assign depthk-children to AUX[1..d]
    2  for k=1 to d
    3      compare A[i] with AUX[k]
    4      if A[i] <= AUX[k]
    5          exchange A[i] with AUX[k]
    6          k = largest
    7  assign AUX[1..d] back to A[depthk-children]
    8  if largest != i
    9      MAX-HEAPIFY(A, (2+(1+d+d^2+..+d^{k-1})+(largest-1) )
    
    • ম্যাক্স-হেপিফাইয়ের চলমান সময়:

      যেখানে গ আমি উল্লেখ করে খরচআমিউপরে -th লাইন।

      TM=d(c8∗d+(c9+..+c13)∗d+c14∗d)
      ci
    • EXTRACT-সর্বোচ্চ:

      টিই=(গ1+ +।।+ +গ7)+ +টিএম≤সি*ঘ*জ=সি*ঘ*(ঠণছঘ[এন(ঘ-1)+ +1]-1)=হে(ঘঠণছঘ[এন(ঘ-1)])

    This এটি কি কার্যকর সমাধান? নাকি আমার সমাধানের মধ্যে কিছু ভুল আছে?


আমি মনে করি যে ব্যাখ্যাটিতে প্রশ্নটির পাশাপাশি কিছুটা ভুল রয়েছে: ডি-আরি হিপটির উচ্চতা h = এ আসে (লগ [এনডি - এন + 1]) - 1 // এর "-n" নোট করুন এবং না "-1" এবং না h = (log [nd−1+1])− 1সুতরাং উচ্চতার জন্য আমরা উপরের ব্যাখ্যাটি সত্য বলে ধরে রাখছি না। এইচ = লগ [এনডি − 1 + 1] −1 = লগ [এনডি] -1 = লগ [এন] তবুও, গাছের উচ্চতা Θ(log(n)).নোট হিসাবে লিখিত হয়েছে : লগ সর্বদা ডি-আরির স্তূপের জন্য বেস ডিতে থাকে ।
— সুরভী রাজে

উত্তর:


10
  1. আপনার সমাধানটি বৈধ এবং ডি- হিরির সংজ্ঞা অনুসরণ করে । আপনি যেমনটি চিহ্নিত করেছেন তেমন একটি পরিশীলিত।

    আপনি ঐ দুই নিম্নলিখিত ফাংশন ব্যবহার অভিভাবক পুনরুদ্ধার করতে পারে আমি -th উপাদান এবং ঞ এর -th শিশু আমি -th উপাদান।

    D-এআরওয়াই পিতা বা মাতা(আমি)    Rইটিতোমার দর্শন লগ করাRএন ⌊(আমি-2)/ঘ+ +1⌋

    D-এআরওয়াই সন্তান(আমি,ঞ)    Rইটিতোমার দর্শন লগ করাRএন ঘ(আমি-1)+ +ঞ+ +1

    1≤ঞ≤ঘD-এআরওয়াই পিতা বা মাতা(D-এআরওয়াই সন্তান(আমি,ঞ))=আমি

    ঘঘ=2ঘ2

  2. জ=ঠণছঘ(এনঘ-1+ +1)-1লগঘ⁡(এনঘ)-1=লগঘ⁡(এন)+ +লগঘ⁡(ঘ)-1=লগঘ⁡(এন)+ +1-1=লগঘ⁡(এন)Θ(লগঘ⁡(এন))

    গΘ

  3. একজনইউএক্সD-এআরওয়াই পিতা বা মাতাD-এআরওয়াই সন্তান

    EXTRACT-MAX টিMAX টি-HEAPIFYহে(ঘ লগঘ⁡(এন(ঘ-1)))

    হে(ঘ লগঘ⁡(এন(ঘ-1)))=হে(ঘ(লগঘ⁡(এন)+ +লগ⁡(ঘ-1)))=হে(ঘ ঠণছঘ(এন)+ +ঘ লগঘ⁡(ঘ-1))

    ঘ«এনঘলগঘ⁡(ঘ-1)হে(ঘলগঘ⁡(এন))MAX টি-HEAPIFYহেΘ

  4. সিএলআরএস বই ইতিমধ্যে INSERT পদ্ধতি সরবরাহ করে। যা দেখতে এরকম দেখাচ্ছে:

    ঢোকান(একজন,টইY)    একজন।জইএকটিপি: _গুলিআমিz- রই=একজন।জইএকটিপি: _গুলিআমিz- রই+ +1    একজন[একজন।জইএকটিপি: _গুলিআমিz- রই]=-∞    বৃদ্ধি-মূল(একজন,একজন।জইএকটিপি: _গুলিআমিz- রই,টইY)

    হে(লগঘ⁡(এন))

  5. ইনসার্টের মতো, পাঠ্যপুস্তকেও ক্রম-কীকে সংজ্ঞায়িত করা হয়েছে:

    বৃদ্ধি-মূল(একজন,আমি,টইY)    আমিচ টইY<একজন[আমি]        ইRRণR"নতুন কী বর্তমানের চেয়ে কম ছোট"    একজন[আমি]=টইY    Wজআমিঠই আমি>1 একটিএনঘ একজন[আমি]>একজন[D-এআরওয়াই পিতা বা মাতা(আমি)]        একজন[আমি]↔একজন[D-এআরওয়াই পিতা বা মাতা (ঝ)]        আমি=D-এআরওয়াই পিতা বা মাতা (ঝ)

    হে(লগঘ⁡(এন))


ধন্যবাদ! কীভাবে বৃদ্ধি-কী এবং ইনসার্ট বাস্তবায়ন হবে? আমি এটি লেখার চেষ্টা করি, তবে এটি MAX-HEAPIFY এর পুনরাবৃত্তি কল দেয়। এর চেয়ে ভাল সমাধান কি আছে? আমি ওয়েবে এবং উইকিতে
— lucasKo

এটা কি ব্যায়ামের বিশ্রাম? যদি তা হয় তবে আপনার প্রশ্নটি আপডেট করুন এবং আমি থিমটির উত্তর দিতে পেরে খুশি হব।
— বার্তোসজ প্রিজিবিলস্কি

আমি প্রশ্নটি সম্পাদিত পোস্টে রেখেছি।
— lucasKo

ইনসার্ট পদ্ধতি পুনরায় প্রতিস্থাপন? আপনার অর্থ, কোনও নতুন উপাদান সন্নিবেশ করার পরে, সেই পদ্ধতির কল করতে হবে না যা গাদা মধ্যে ক্রমটি সামঞ্জস্য করে? আমি এটি পাই না ...
— lucasKo

এই বিবরণটি কিছুটা দুর্ভাগ্যজনক ছিল, পরিষ্কার করার জন্য সম্পাদনাগুলি দেখুন।
— বার্তোসজ প্রিজিবিলস্কি

1

জ=ঠণছঘ[এনঘ-1+ +1]-1
1+ +ঘ+ +ঘ2+ +।।+ +ঘজ=এনঘজ+ +1-1ঘ-1=এনজ=ঠণছঘ[এন(ঘ-1)+ +1]-1
জ=Θ(লগঘ⁡(এন))

-1

দ্বিতীয় প্রশ্নের উত্তর হ'ল লগ ডি (এন (ডি -1) + 1) - 1 সুতরাং, এইচ = লগ ডি (এনডি - এন + 1) - 1


4
কেন এই উত্তর? কোনও ব্যাখ্যা সহ একটি সূত্র সত্যই কাউকে সাহায্য করে না।
— ডেভিড রিচারবি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.