File tree Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -352,19 +352,24 @@ public virtual void SelectionSort()
352
352
var currentNode = _firstNode ;
353
353
while ( currentNode != null )
354
354
{
355
+ var minNode = currentNode ;
355
356
var nextNode = currentNode . Next ;
356
357
while ( nextNode != null )
357
358
{
358
- if ( nextNode . Data . IsLessThan ( currentNode . Data ) )
359
+ if ( nextNode . Data . IsLessThan ( minNode . Data ) )
359
360
{
360
- var temp = nextNode . Data ;
361
- nextNode . Data = currentNode . Data ;
362
- currentNode . Data = temp ;
361
+ minNode = nextNode ;
363
362
}
364
363
365
364
nextNode = nextNode . Next ;
366
365
}
367
366
367
+ if ( minNode != currentNode )
368
+ {
369
+ var temp = minNode . Data ;
370
+ minNode . Data = currentNode . Data ;
371
+ currentNode . Data = temp ;
372
+ }
368
373
currentNode = currentNode . Next ;
369
374
}
370
375
}
You can’t perform that action at this time.
0 commit comments