JavaAlgorithms/Sorts/CombSort.java
Sandeep Roy f8542e4db7
Updated CombSort.java
As requested done the changes.
2018-04-05 14:31:51 +05:30

63 lines
1.6 KiB
Java

// Java program for implementation of Comb Sort
class CombSort
{
// To find gap between elements
static int getNextGap(int gap)
{
// Shrink gap by Shrink factor
gap = (gap*10)/13;
gap = (gap < 1) ? 1: gap;
}
// Function to sort arr[] using Comb Sort
static void sort(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)
{
// 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<n-gap; i++)
{
if (arr[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;
}
}
}
}
// Driver method
public static void main(String args[])
{
CombSort ob = new CombSort();
int arr[] = {8, 4, 1, 56, 3, -44, 23, -6, 28, 0};
ob.sort(arr);
System.out.println("sorted array");
for (int i=0; i<arr.length; ++i) {
System.out.print(arr[i] + " ");
}
}
}