File tree Expand file tree Collapse file tree 2 files changed +40
-4
lines changed
UnitTest/DataStructuresTests Expand file tree Collapse file tree 2 files changed +40
-4
lines changed Original file line number Diff line number Diff line change @@ -731,19 +731,25 @@ public virtual void SelectionSort()
731
731
var currentNode = _firstNode ;
732
732
while ( currentNode != null )
733
733
{
734
+ var minNode = currentNode ;
734
735
var nextNode = currentNode . Next ;
735
736
while ( nextNode != null )
736
737
{
737
- if ( nextNode . Data . IsLessThan ( currentNode . Data ) )
738
+ if ( nextNode . Data . IsLessThan ( minNode . Data ) )
738
739
{
739
- var temp = nextNode . Data ;
740
- nextNode . Data = currentNode . Data ;
741
- currentNode . Data = temp ;
740
+ minNode = nextNode ;
742
741
}
743
742
744
743
nextNode = nextNode . Next ;
745
744
}
746
745
746
+ if ( minNode != currentNode )
747
+ {
748
+ var temp = minNode . Data ;
749
+ minNode . Data = currentNode . Data ;
750
+ currentNode . Data = temp ;
751
+ }
752
+
747
753
currentNode = currentNode . Next ;
748
754
}
749
755
}
Original file line number Diff line number Diff line change @@ -95,6 +95,36 @@ public static void DoTest()
95
95
var intArray = listOfNumbers . ToArray ( ) ;
96
96
Assert . True ( intArray [ 0 ] == 0 && intArray [ intArray . Length - 1 ] == 55 , "Wrong sorting!" ) ;
97
97
}
98
+
99
+ /// <summary>
100
+ ///Check SelectionSort method
101
+ ///</summary>
102
+ ///<returns></returns>
103
+ [ Fact ]
104
+ public static void TestSelectionSort ( )
105
+ {
106
+ var listOfNumbers = new DLinkedList < int > ( ) ;
107
+ listOfNumbers . Append ( 23 ) ;
108
+ listOfNumbers . Append ( 42 ) ;
109
+ listOfNumbers . Append ( 4 ) ;
110
+ listOfNumbers . Append ( 16 ) ;
111
+ listOfNumbers . Append ( 8 ) ;
112
+ listOfNumbers . Append ( 15 ) ;
113
+ listOfNumbers . Append ( 9 ) ;
114
+ listOfNumbers . Append ( 55 ) ;
115
+ listOfNumbers . Append ( 0 ) ;
116
+
117
+ listOfNumbers . SelectionSort ( ) ;
118
+ var intArray = listOfNumbers . ToArray ( ) ;
119
+ var i = 0 ;
120
+ while ( i < intArray . Length - 1 )
121
+ {
122
+ Assert . True ( intArray [ i ] <= intArray [ i + 1 ] , "Wrong sorting at index: " + i ) ;
123
+ ++ i ;
124
+ }
125
+
126
+ }
127
+
98
128
}
99
129
}
100
130
You can’t perform that action at this time.
0 commit comments