কম্পিউটার

Pigeonhole সাজান


এটি তুলনাহীন সাজানোর কৌশলের একটি উদাহরণ৷ এটি ব্যবহার করা হয় যেখানে আইটেমের সংখ্যা এবং সম্ভাব্য কী মানগুলির পরিসর প্রায় একই।

এই সাজানোর জন্য, আমাদের কিছু গর্ত করতে হবে। প্রয়োজনীয় গর্ত সংখ্যা সংখ্যার পরিসীমা দ্বারা নির্ধারিত হয়। প্রতিটি গর্তে, আইটেম ঢোকানো হয়। অবশেষে গর্ত থেকে মুছে ফেলা হয়েছে এবং সাজানো অর্ডারের জন্য একটি অ্যারেতে সংরক্ষণ করা হয়েছে৷

পিজিয়ন-হোল সাজানোর কৌশলের জটিলতা

  • সময়ের জটিলতা:O(n+2^k)
  • স্পেস জটিলতা:O(2^k)

ইনপুট এবং আউটপুট

ইনপুট:বিন্যাস করা তালিকা:802 630 20 745 52 300 612 932 78 187 আউটপুট:সাজানোর আগে ডেটা:802 630 20 745 52 300 612 932 78 78 1320 1820 1320 1320 1320 1320 পূর্বে> 

অ্যালগরিদম

pigeonHoleSort(অ্যারে, আকার)

ইনপুট - ডেটার একটি অ্যারে, এবং অ্যারের মোট সংখ্যা

আউটপুট - সাজানো অ্যারে

অ্যারে তালিকা থেকে সর্বোচ্চ এবং সর্বনিম্ন খোঁজা শুরু করুন holeRange :=max – min +1 define holerange number of lists for i :=0 থেকে n-1 do hole[array[i]-min].append(array[i) ]) সম্পন্ন গণনা :=0 এর জন্য j :=0 থেকে holeRange-1 ডু যখন হোল[j] খালি নেই ডু অ্যারে [count] :=গর্তের প্রথম নোড পান [j] এবং মুছে ফেলুন গণনা :=গণনা +1 সম্পন্ন সম্পন্ন হয়েছে

উদাহরণ

#include#include#includeনেমস্পেস ব্যবহার করে std;void getMaxMin(int *arr, int n, int &maximum, int &minimum) { সর্বোচ্চ =সর্বনিম্ন =arr[0]; //প্রাথমিকভাবে max এবং min ar arr[0] for(int i =1; i সর্বোচ্চ) সর্বোচ্চ =arr[i]; // সর্বাধিক ডেটা পান যদি (arr[i] <সর্বনিম্ন) সর্বনিম্ন =arr[i]; // সর্বনিম্ন ডেটা পান }} void pegionHoleSort(int *arr, int n) { int max, min; getMaxMin(arr, n, max, min); int holeRange =সর্বোচ্চ - মিনিট +1; তালিকা হোল[হোলরেঞ্জ]; //(int i =0; i> n; int arr[n]; //প্রদত্ত সংখ্যক উপাদান সহ একটি অ্যারে তৈরি করুন cout <<"এন্টার উপাদান:" <> arr[i]; } cout <<"বাছাই করার আগে ডেটা:"; প্রদর্শন (আরআর, এন); pegionHoleSort(arr, n); cout <<"বাছাই করার পরে ডেটা:"; প্রদর্শন(arr, n);}

আউটপুট

<প্রে>এলিমেন্টের সংখ্যা লিখুন:10এন্টার এলিমেন্ট:802 630 20 745 52 300 612 932 78 187 সাজানোর আগে ডেটা:802 630 20 745 52 300 612 932 745 52 300 612 পরে প্রাক>
  1. রেডিক্স সাজানোর জন্য C++ প্রোগ্রাম

  2. বুদবুদ সাজান

  3. C# এ হিপ বাছাই

  4. C# এ কী-ভ্যালু পেয়ার বাছাই