Skip to content

Commit ddd4cbf

Browse files
kdimolikasaalhour
authored andcommitted
Fix SelectionSort for DLinkedList
1 parent 745113a commit ddd4cbf

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

DataStructures/Lists/DLinkedList.cs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -731,19 +731,25 @@ public virtual void SelectionSort()
731731
var currentNode = _firstNode;
732732
while (currentNode != null)
733733
{
734+
var minNode = currentNode;
734735
var nextNode = currentNode.Next;
735736
while (nextNode != null)
736737
{
737-
if (nextNode.Data.IsLessThan(currentNode.Data))
738+
if (nextNode.Data.IsLessThan(minNode.Data))
738739
{
739-
var temp = nextNode.Data;
740-
nextNode.Data = currentNode.Data;
741-
currentNode.Data = temp;
740+
minNode = nextNode;
742741
}
743742

744743
nextNode = nextNode.Next;
745744
}
746745

746+
if (minNode != currentNode)
747+
{
748+
var temp = minNode.Data;
749+
minNode.Data = currentNode.Data;
750+
currentNode.Data = temp;
751+
}
752+
747753
currentNode = currentNode.Next;
748754
}
749755
}

0 commit comments

Comments
 (0)