जावा में कॉम्ब सॉर्ट सूची के अंत में स्थित छोटे मानों को हटा देता है और व्युत्क्रमों को एक-एक करके हटा दिया जाता है। आइए एक उदाहरण देखें -
उदाहरण
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 से अधिक है, तो एक नया 'len_gap' परिभाषित किया गया है जो कि सरणी की लंबाई 1.3f से विभाजित है।
इस सरणी को पुनरावृत्त किया जाता है और सरणी में तत्वों की तुलना की जाती है और यदि तत्व तत्व से अधिक है और एक विशिष्ट 'len_gap' है, तो तत्वों की अदला-बदली की जाती है। इसके बाद तत्वों पर एक साधारण बबल सॉर्ट भी किया जाता है। मुख्य फ़ंक्शन में, सरणी को परिभाषित किया जाता है और डेमो क्लास का एक उदाहरण परिभाषित किया जाता है और सरणी पर 'comb_sort' फ़ंक्शन को कॉल किया जाता है।