কম্পিউটার

শেল সাজানোর জন্য C++ প্রোগ্রাম


শেল সাজানোর কৌশলটি সন্নিবেশ সাজানোর উপর ভিত্তি করে। সন্নিবেশ সাজানোর ক্ষেত্রে কখনও কখনও আমাদের সঠিক অবস্থানে আইটেম সন্নিবেশ করতে বড় ব্লক স্থানান্তর করতে হবে। শেল সাজানোর ব্যবহার করে, আমরা বড় সংখ্যক স্থানান্তর এড়াতে পারি। বাছাই নির্দিষ্ট ব্যবধান সঙ্গে সম্পন্ন করা হয়. প্রতিটি পাসের পর ব্যবধান কমিয়ে ছোট ব্যবধান করা হয়।

শেল সাজানোর কৌশলের জটিলতা

  • সময়ের জটিলতা:সেরা ক্ষেত্রের জন্য O(n log n), এবং অন্যান্য ক্ষেত্রে, এটি গ্যাপ সিকোয়েন্সের উপর নির্ভর করে।

  • স্থান জটিলতা:O(1)

ইনপুট − সাজানো তালিকা:23 56 97 21 35 689 854 12 47 66 আউটপুট − সাজানোর পরে অ্যারে:12 21 23 35 47 56 66 97 689 854

অ্যালগরিদম

শেলসোর্ট(অ্যারে, আকার)

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

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

গ্যাপ এর জন্য শুরু করুন :=সাইজ / 2, যখন গ্যাপ> 0 এবং ব্যবধান আপডেট করা হয় গ্যাপ / 2 ডু এর জন্য j:=গ্যাপ থেকে সাইজ– 1 ডু k এর জন্য :=j-গ্যাপ থেকে 0, গ্যাপ ভ্যালু দ্বারা হ্রাস করুন if array[k+gap]>=array[k] break else swap array[k + gap] with array[k] সম্পন্ন হয়েছে সম্পন্ন হয়েছে শেষ

উদাহরণ কোড

#includeনেমস্পেস ব্যবহার করে std;void সোয়াপিং(int &a, int &b) {//a এবং b int temp-এর বিষয়বস্তু অদলবদল করুন; temp =a; a =b; b =temp;} void display(int *array, int size) { for(int i =0; i
 0; gap =gap / 2) { //প্রাথমিকভাবে ব্যবধান =n/2, ব্যবধান /2 দ্বারা হ্রাস (j =gap; j=0; k -=ফাঁক) { if(arr[k+gap]>=arr[k]) বিরতি; অন্য অদলবদল (আরআর[কে+গ্যাপ], আরআর[কে]); } } }} int main() { int n; cout <<"উপাদানের সংখ্যা লিখুন:"; cin>> n; int arr[n]; //প্রদত্ত সংখ্যক উপাদান সহ একটি অ্যারে তৈরি করুন cout <<"এন্টার উপাদান:" <> arr[i]; } cout <<"বাছাই করার আগে অ্যারে:"; প্রদর্শন (arr, n); shellSort(arr, n); cout <<"বাছাই করার পরে অ্যারে:"; প্রদর্শন(arr, n);}

আউটপুট

<প্রে>এলিমেন্টের সংখ্যা লিখুন:10এন্টার এলিমেন্ট:23 56 97 21 35 689 854 12 47 66 সাজানোর আগে অ্যারে:23 56 97 21 35 689 854 12 47 66 সাজানোর পরে অ্যারে 42627 42675 49625 প্রাক>
  1. বুদবুদ সাজানোর জন্য C++ প্রোগ্রাম

  2. বালতি সাজানোর জন্য C++ প্রোগ্রাম

  3. রেডিক্স সাজানোর জন্য C++ প্রোগ্রাম

  4. শেল সাজানোর জন্য পাইথন প্রোগ্রাম