2011-11-15 19 views
0

リンクリストに選択ソートを実装しようとしています。私はそれが私がここに貼り付けられているノードポインタの代わりに、配列インデックスの方法を使用して、リンクリスト、コピーではなく上で直接実行することにしたい。選択リストを実行するにはどうすればいいですか?

void listClass::selectionsort(int array[], int size) 
{ 
    int startscan, minIndex, minValue; 

for (startscan = 0; startscan < (size - 1); startscan++) 
{ 
    minIndex = startscan; 
    minValue = array[startscan]; 
    for (int index = startscan + 1; index < size; index++) 
    { 
     if (array[index] < minValue) 
     { 
      minValue = array[index]; 
      minIndex = index; 
     } 
    } 
    array[minIndex] = array[startscan]; 
    array[startscan] = minValue; 
} 
} 

がどのように私は私のリンクリストを受け入れるために、この機能を微調整するのでしょうか?それを並べ替える?私はまた、STLコンテナを使用したくない。

+0

この宿題はありますか? –

+0

否定、私はソフトウェアエンジニアリングインターンシップの練習面接の質問に取り組んでいます – Extinct23

答えて

1

リストが{90,13,5,12}であるとします。最初にポインタを開始します。

{* 90、13、5、12}

ポインタ後の最小のメンバーを検索し、ちょうどポインタの前に移動します。

{5、* 90、13、12}

ポインタ後の最小のメンバーを検索し、ちょうどポインタの前に移動します。

{5、12、* 90、13}

再び。

再び

{5、12、13、* 90}。

{5、12、13、90}

ポインタは、リストの終わりをオフに実行し、我々は、リストがソートされ、行われています。

関連する問題