import java.util.Scanner; public class CombSort { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("Enter the number of elements : "); int n = sc.nextInt(); int arr[] = new int[n]; System.out.println("Enter " + n + " elements :"); for (int i = 0; i < n; i++) arr[i] = sc.nextInt(); combSort(arr); System.out.println("\nThe sorted array : ;"); for (int i = 0; i < n; i++) System.out.print(arr[i] + " "); System.out.println(); } protected static void combSort(int[] arr) { int n = arr.length; // initialize gap int gap = n; // Initialize swapped as true to make sure that // loop runs boolean swapped = true; // Keep running while gap is more than 1 and last // iteration caused a swap while (gap != 1 || swapped == true) { // Find next gap gap = getNextGap(gap); // Initialize swapped as false so that we can // check if swap happened or not swapped = false; // Compare all elements with current gap for (int i=0; i arr[i+gap]) { // Swap arr[i] and arr[i+gap] int temp = arr[i]; arr[i] = arr[i+gap]; arr[i+gap] = temp; // Set swapped swapped = true; } } } } // To find gap between elements static int getNextGap(int gap) { // Shrink gap by Shrink factor gap = (gap*10)/13; if (gap < 1) return 1; return gap; } }