চিরুনি সাজানোর মৌলিক ধারণা এবং বুদবুদ সাজানোর ধারণা একই। অন্য কথায়, চিরুনি সাজানো হল বুদবুদ সাজানোর একটি উন্নতি। বুদ্বুদ বাছাই কৌশলে, আইটেমগুলি প্রতিটি পর্বে পরবর্তী আইটেমের সাথে তুলনা করা হয়। কিন্তু চিরুনি সাজানোর জন্য, আইটেমগুলি একটি নির্দিষ্ট ফাঁকে সাজানো হয়। প্রতিটি পর্যায় শেষ করার পরে, ব্যবধান হ্রাস করা হয়। এই সাজানোর জন্য হ্রাসকারী ফ্যাক্টর বা সঙ্কুচিত ফ্যাক্টর হল 1.3। এর অর্থ হল প্রতিটি পর্ব শেষ করার পরে ব্যবধানটি 1.3 দ্বারা বিভক্ত।
কম্ব সাজানোর কৌশলের জটিলতা
- সময়ের জটিলতা: O(n log n) সেরা ক্ষেত্রে। গড় ক্ষেত্রের জন্য O(n^2/2^p) (p হল একটি সংখ্যা বৃদ্ধি) এবং সবচেয়ে খারাপ ক্ষেত্রে O(n^2)৷
- স্পেস জটিলতা: O(1)
ইনপুট এবং আউটপুট
ইনপুট:সাজানো না হওয়া ডেটার একটি তালিকা:108 96 23 74 12 56 85 42 13 47 আউটপুট:সাজানোর আগে অ্যারে:108 96 23 74 12 56 85 42 13 47 সাজানোর পরে অ্যারে 526747 526473 /প্রে>অ্যালগরিদম
CombSort(অ্যারে, আকার)ইনপুট - ডেটার একটি অ্যারে, এবং অ্যারের মোট সংখ্যা
আউটপুট - সাজানো অ্যারে
<প্রে>বিগিন গ্যাপ :=সাইজ পতাকা :=সত্য থাকাকালীন ব্যবধান ≠ 1 বা পতাকা =সত্য ডু গ্যাপ =ফ্লোর(গ্যাপ/1.3) //বিভাজনের পরে মেঝের মান যদি ফাঁক <1 তাহলে ফাঁক :=1 পতাকা =মিথ্যা i এর জন্য :=0 থেকে সাইজ - গ্যাপ -1 করুন যদি অ্যারে[i]> অ্যারে[i+গ্যাপ] তারপর অ্যারে [i+গ্যাপ] ফ্ল্যাগ =সত্যের সাথে অ্যারে অদলবদল করুন; সম্পন্ন করা শেষ
উদাহরণ
#include#include namespace ব্যবহার করে std;void display(int *array, int size) { for(int i =0; i array[i+gap]) { swap(array[i], array[i+gap] ); পতাকা =সত্য; } } }} int main() { int n; cout <<"উপাদানের সংখ্যা লিখুন:"; cin>> n; int arr[n]; //প্রদত্ত সংখ্যক উপাদান সহ একটি অ্যারে তৈরি করুন cout <<"এন্টার উপাদান:" < > arr[i]; } cout <<"বাছাই করার আগে অ্যারে:"; প্রদর্শন (আরআর, এন); combSort(arr, n); cout <<"বাছাই করার পরে অ্যারে:"; প্রদর্শন(arr, n);}