2012-02-11 7 views
1

でC#で、私はC#私は、GUI

void SelectionSort() 
    { 
     clearFontColor(); 
     int i, j, min, temp; 
     for (i = 0; i < 9; i++) 
     { 
      min = i; 
      for (j = i + 1; j < 10; j++) 
      { 
       if (input[min] > input[j]) 
       { 
        min = j; 
       } 
      } 
      if (min != i) 
      { 
       temp = input[i]; 
       input[i] = input[min]; 
       input[min] = temp; 
      } 

     } 
     show(input); 
    } 

ため、このコードを書いてきた。しかし、これは唯一の一歩をやっているし、後でそれはそれを達成するためにstops.Howでステップをソートしたいです。それは動作を停止し、その後

ソートアクションのためのボタンが

private void button2_Click(object sender, EventArgs e) 
    { 
     // lbl_step.Visible = true; 
     if (radioButton2.Checked) 
     { 
      InsertionSort(); 
     } 
     else if (radioButton1.Checked) 
     { 
      bubble(); 
     } 
     else if (radioButton3.Checked) 
     { 
      SelectionSort(); 
     } 

    } 

、ちょうど1時間のためにその作業のようなものです。

+0

これはCではありません。メソッドの最初にすべての変数を宣言する必要はありません。 –

+0

はprobを解決することができます。 –

+2

あなたのコードをすべて正しく読んでいれば、渡す配列は参考になります。したがって、配列をソートするときに最初にソートするときに。次に、配列がすでにソートされています。何か不足していますか?これはあなたが求めている質問ですか? –

答えて

1

あなたのコードが正しいとすれば、あなたはこのようなことをしています。つまり、コードが実行され、変更がどのように表示されるかは、GUIで表示されないほど速くなります。変数をクラスメンバーにする必要があります。あなたのボタンをクリックすると、iが増えます。

要約:ボタンをクリックするたびにiを設定します。次に、あなたのメソッドは1回の反復だけを行い、ユーザーインターフェイスを表示します。続行するには、ボタンをもう一度クリックし、iを増やしてください(境界を確認してください)。

int i; 
void SelectionSort() 
{ 
    clearFontColor(); 
    int j, temp; 
    min = i; 
    for (j = i + 1; j < 10; j++) 
    { 
     if (input[min] > input[j]) 
     { 
      min = j; 
     } 
    } 
    if (min != i) 
    { 
     temp = input[i]; 
     input[i] = input[min]; 
     input[min] = temp; 
    } 
    show(input); 
} 
関連する問題