私はrandom
とsorting
方法で働いています。これまでのところ、線形メソッドが機能しています。、、 などlinear
、使用する並べ替えの種類をユーザーが決定できるようにする方法を実装しようとしています。Keyに選択された値がある場合、ソート配列はその特定のソート方法を実行します。値に基づいて特定のソート方法を実行するにはどうすればよいですか? 以下は、Windowsフォームをセットアップする方法の写真ですbubble
index
textBox7
Key
button3
textbox7
button2
Key
コード
namespace sortmachine
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Stopwatch sw = new Stopwatch();
Random r = new Random();
private int size = 0;
private int max = 0;
private int ops = 0;
private int[] ar1;
private int[] ar2;
private int[] ar3;
private void button1_Click(object sender, EventArgs e)
{
try
{
size = Convert.ToInt32(textBox2.Text);
max = Convert.ToInt32(textBox3.Text);
string s = "";
ar1 = new int[size];
ar2 = new int[size];
ar3 = new int[size];
for (int i = 0; i < size; i++)
{
int n = r.Next(0, max);
ar1[i] = n;
ar2[i] = ar1[i];
}
for (int i = 0; i < size; i++)
{
s += ar1[i].ToString() + " ";
}
listView1.Items.Add(s);
}
catch
{
MessageBox.Show("Please input information");
}
}
private void button2_Click(object sender, EventArgs e)
{
int min = max;
int n = 0;
string s="";
sw.Start();
for (int j = 0; j < size; j++)
{
for (int i = 0; i < size; i++)
{
if (min > ar2[i])
{
min = ar2[i];
n = i;
ops++;
}
if (min < ar2[i])
{
ops++;
}
}
ar2[n]=max;
ar3[j] = min;
min = max;
s += ar3[j] + " ";
}
TimeSpan x = sw.Elapsed;
textBox5.Text = x.ToString();
listView2.Items.Add(s);
listView2.Text = s;
textBox6.Text = Convert.ToString(ops);
if (checkBox1.Checked==true)
{
textBox1.AppendText(s+Environment.NewLine);
}
for (int i = 0; i < size; i++)
{
ar2[i] = ar1[i];
}
ops = 0;
}
}
}