1
+ package sorting ;
2
+
3
+ public class SimpleSelectionSort {
4
+
5
+ static void sort (double [] numbers ) {
6
+ int sortedElementsNo = 0 ;
7
+
8
+ System .out .println ("SIMPLE SELECT SORTING\n (SORTED SPACE) [UNSORTED SPACE]" );
9
+ showStep (numbers , -1 , 0 );
10
+
11
+ for (int round = 1 ; round <= numbers .length ; round ++) {
12
+ /**If this number is the minimum of the unsorted list.*/
13
+ int minIndex = getMinIndex (numbers , sortedElementsNo );
14
+
15
+ swap (numbers , sortedElementsNo , minIndex );
16
+
17
+ /**DISPLAY ALL STEPS OF THE METHOD*/
18
+ showStep (numbers , sortedElementsNo , round );
19
+
20
+ sortedElementsNo ++;
21
+ }
22
+ }
23
+
24
+ static void showStep (double [] numbers , int sortedElNo , int round ) {
25
+
26
+ System .out .print ("round" + round + "=>( " );/**OPEN SORTED SPACE*/
27
+ if (sortedElNo < 0 ) {
28
+ System .out .print (" ) [ " );
29
+ for (int j = 0 ; j < numbers .length - 1 ; j ++)
30
+ System .out .print (numbers [j ] + " " );
31
+ } else {
32
+ for (int j = 0 ; j < numbers .length - 1 ; j ++) {
33
+ if (j == sortedElNo )
34
+ System .out .print (numbers [j ] + " ) [ " );/**CLOSE SORTED SPACE*/
35
+ else
36
+ System .out .print (numbers [j ] + " " );
37
+ }
38
+ }
39
+ System .out .print (numbers [numbers .length - 1 ]);/**Appending the last element without adding spaces after*/
40
+ System .out .println (" ]\n ------------------------------------------------------------------------------------------------------------------" );
41
+ }
42
+
43
+ static void swap (double [] numbers , int i , int j ) {
44
+ if (i != j ) {
45
+ numbers [i ] += numbers [j ];
46
+ numbers [j ] = numbers [i ] - numbers [j ];
47
+ numbers [i ] -= numbers [j ];
48
+ }
49
+ }
50
+
51
+ static int getMinIndex (double [] numbers , int startPos ) {
52
+ int min = startPos ;
53
+
54
+ for (int i = startPos + 1 ; i < numbers .length ; i ++)
55
+ if (numbers [i ] < numbers [min ]) min = i ;
56
+ return min ;
57
+ }
58
+
59
+ public static void main (String [] args ) {
60
+
61
+ double numbers [] = {255 , 14 , 73 , 92 , 20 , 6 , 10 , 100 , -11 , 50 , 0 };
62
+
63
+ sort (numbers );
64
+
65
+ }
66
+
67
+ }
0 commit comments