Merge pull request #287 from sandeeproy99/patch-3

CombSort.java
This commit is contained in:
Christian Bender 2018-04-08 19:53:08 +02:00 committed by GitHub
commit 1f76cda0e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

62
Sorts/CombSort.java Normal file
View File

@ -0,0 +1,62 @@
// 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] + " ");
}
}
}