জাভাতে কম্ব সর্ট তালিকার শেষে অবস্থিত ছোট মানগুলিকে সরিয়ে দেয় এবং বিপরীতগুলি একের পর এক মুছে ফেলা হয়। আসুন একটি উদাহরণ দেখি -
উদাহরণ
import java.util.Arrays; public class Demo{ void comb_sort(int nums[]){ int len_gap = nums.length; float shrink_val = 1.3f; boolean swap = false; while (len_gap > 1 || swap) { if (len_gap > 1) { len_gap = (int)(len_gap / shrink_val); } swap = false; for (int i = 0; len_gap + i < nums.length; i++){ if (nums[i] > nums[i + len_gap]) { swap(nums, i, i + len_gap); swap = true; } } } } private static void swap(int nums[], int x, int y) { Integer temp = nums[x]; nums[x] = nums[y]; nums[y] = temp; } public static void main(String args[]){ Demo ob = new Demo(); int nums[] = {6, 78, 90, -12, -45, 0, -1, 45}; System.out.println("The original array contains "); System.out.println(Arrays.toString(nums)); ob.comb_sort(nums); System.out.println("The sorted array is "); System.out.println(Arrays.toString(nums)); } }
আউটপুট
The original array contains [6, 78, 90, -12, -45, 0, -1, 45] The sorted array is [-45, -12, -1, 0, 6, 45, 78, 90]
ডেমো নামের একটি ক্লাসে 'comb_sort' ফাংশন রয়েছে। এখানে, অ্যারের দৈর্ঘ্য সংজ্ঞায়িত করা হয়েছে এবং যদি এই দৈর্ঘ্য 1-এর বেশি হয়, একটি নতুন 'লেন_গ্যাপ' সংজ্ঞায়িত করা হয় যা 1.3f দ্বারা বিভক্ত অ্যারের দৈর্ঘ্য।
এই অ্যারেটি পুনরাবৃত্তি করা হয় এবং অ্যারের উপাদানগুলির তুলনা করা হয় এবং যদি উপাদানটি উপাদানের চেয়ে বড় হয় এবং একটি নির্দিষ্ট 'লেন_গ্যাপ', উপাদানগুলি অদলবদল করা হয়। এর পরে, উপাদানগুলিতে একটি সাধারণ বুদবুদ বাছাই করা হয়। প্রধান ফাংশনে, অ্যারে সংজ্ঞায়িত করা হয় এবং ডেমো ক্লাসের একটি উদাহরণ সংজ্ঞায়িত করা হয় এবং অ্যারেতে 'comb_sort' ফাংশনটি কল করা হয়।