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