You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.1 KiB
Java
65 lines
2.1 KiB
Java
5 years ago
|
//This is a java program to sort the numbers using Shaker Sort
|
||
|
import java.util.Random;
|
||
|
|
||
|
public class Shaker_Sort
|
||
|
{
|
||
|
public static void printSequence(int[] sorted_sequence)
|
||
|
{
|
||
|
for (int i = 0; i < sorted_sequence.length; i++)
|
||
|
System.out.print(sorted_sequence[i] + " ");
|
||
|
}
|
||
|
|
||
|
public static int[] shakerSort(int[] array)
|
||
|
{
|
||
|
for (int i = 0; i < array.length/2; i++)
|
||
|
{
|
||
|
boolean swapped = false;
|
||
|
for (int j = i; j < array.length - i - 1; j++)
|
||
|
{
|
||
|
if (array[j] < array[j+1])
|
||
|
{
|
||
|
int tmp = array[j];
|
||
|
array[j] = array[j+1];
|
||
|
array[j+1] = tmp;
|
||
|
}
|
||
|
}
|
||
|
for (int j = array.length - 2 - i; j > i; j--)
|
||
|
{
|
||
|
if (array[j] > array[j-1])
|
||
|
{
|
||
|
int tmp = array[j];
|
||
|
array[j] = array[j-1];
|
||
|
array[j-1] = tmp;
|
||
|
swapped = true;
|
||
|
}
|
||
|
}
|
||
|
if(!swapped) break;
|
||
|
}
|
||
|
return array;
|
||
|
}
|
||
|
public static void main(String args[])
|
||
|
{
|
||
|
System.out
|
||
|
.println("Sorting of randomly generated numbers using Shaker SORT");
|
||
|
Random random = new Random();
|
||
|
int N = 20;
|
||
|
int[] sequence = new int[N];
|
||
|
for (int i = 0; i < N; i++)
|
||
|
sequence[i] = Math.abs(random.nextInt(100));
|
||
|
System.out.println("\nOriginal Sequence: ");
|
||
|
printSequence(sequence);
|
||
|
System.out.println("\nSorted Sequence: ");
|
||
|
printSequence(shakerSort(sequence));
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
|
||
|
Sorting of randomly generated numbers using SHAKER SORT
|
||
|
|
||
|
Original Sequence:
|
||
|
195 853 655 915 364 689 539 684 956 197 67 871 509 662 825 336 540 815 403 876
|
||
|
Sorted Sequence:
|
||
|
956 915 876 871 853 825 815 689 684 662 655 540 539 509 403 364 336 197 195 67
|