0
私がチェックしたところで、正しい最小値と前のノードが見つかりました。その後、私はノードをスワップするだけですが、このコードを実装すると出力は何もありません。選択単一のリンクリストに並べ替え
問題を描いた後、私は問題がソートされていると思ったので、名前をソートしたノードをもう1つ追加しましたが、まだ問題を解決できませんでした。ここで
は私の例のコードは次のとおりです。
public void selectionSort()
{
Node<T> first = head;
Node<T> previous = head;
Node<T> minimum = head;
Node<T> compare;
Node<T> temp;
Node<T> sorted = head;
while (first.Next != null)
{
sorted = minimum; // with this I'm finding the last sorted node
minimum = first;
compare = first.Next;
while (compare.Next != null)
{
if (minimum.Value.CompareTo(compare.Next.Value) > 0)
{
previous = compare; // Need previous node to changing connections
minimum = compare.Next; // Saving minimum value
}
compare = compare.Next;
}
// Swapping nodes
temp = first;
previous.Next = first;
first.Next = minimum.Next;
minimum.Next = temp.Next;
if (temp != head)
{
sorted.Next = minimum; // Adding minimum node to sorted part
}
first = first.Next;
}
}
私はそれがwork.Thankあなたに始めています、あなたのコード内のいくつかのことを変更しました! 'Null'の代わりに' null'があります。また、 '> 'の代わりにif(currentInner.Value.CompareTo(minimum.Value)<0)' –
を修正しました。 –
@BatuhanAydın私の以前のソリューションに問題があったので、別の簡単なものを投稿しました。私の更新された答えを見てください。 –