1+ package Sorts ;
2+
3+ import java .util .Random ;
4+
5+ // https://en.wikipedia.org/wiki/Odd%E2%80%93even_sort
6+ public class OddEvenSort {
7+
8+ public static void main (String [] args ) {
9+ int [] arr = new int [100 ];
10+
11+ Random random = new Random ();
12+
13+ // Print out unsorted elements
14+ for (int i = 0 ; i < arr .length ; ++i ) {
15+ arr [i ] = random .nextInt (100 ) - 50 ;
16+ System .out .println (arr [i ]);
17+ }
18+ System .out .println ("--------------" );
19+
20+ oddEvenSort (arr );
21+
22+ //Print Sorted elements
23+ for (int i = 0 ; i < arr .length - 1 ; ++i ) {
24+ System .out .println (arr [i ]);
25+ assert arr [i ] <= arr [i + 1 ];
26+ }
27+ }
28+
29+ /**
30+ * Odd Even Sort algorithms implements
31+ *
32+ * @param arr the array contains elements
33+ */
34+ public static void oddEvenSort (int [] arr ) {
35+ boolean sorted = false ;
36+ while (!sorted ) {
37+ sorted = true ;
38+
39+ for (int i = 1 ; i < arr .length -1 ; i += 2 ){
40+ if (arr [i ] > arr [i + 1 ]){
41+ swap (arr , i , i +1 );
42+ sorted = false ;
43+ }
44+ }
45+
46+ for (int i = 0 ; i < arr .length - 1 ; i += 2 ){
47+ if ( arr [i ] > arr [i + 1 ] ){
48+ swap (arr , i , i +1 );
49+ sorted = false ;
50+ }
51+ }
52+ }
53+ }
54+
55+ /**
56+ * Helper function to swap two array values.
57+ *
58+ * @param arr the array contains elements
59+ * @param i the first index to be swapped
60+ * @param j the second index to be swapped
61+ */
62+ private static void swap (int [] arr , int i , int j ) {
63+ int temp = arr [i ];
64+ arr [i ] = arr [j ];
65+ arr [j ] = temp ;
66+ }
67+ }
0 commit comments