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


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(c8d+(c9+..+c13)d+c14d)
      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

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

    =22

  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<একজন[আমি]        RRR"নতুন কী বর্তমানের চেয়ে কম ছোট"    একজন[আমি]=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.