C#视觉工作室 - Windows窗体应用程序
我正在尝试创建一个程序,对一个种子整数数组进行冒泡排序,并逐行显示每个步骤。该程序正是这样做的,但我希望在完全排序后停止写入数组。例如,一个{1, 4, 5, 2, 6}的数组将显示如下:
1 4 5 2 6
1 4 2 5 6
1 2 4 5 6
1 2 4 5 6
1 2 4 5 6
我希望它在第三行后停止。这是当前的代码:
int[] randArray = new int[5];
private void btnLotto_Click(object sender, EventArgs e) {
fillArray();
sortArray();
}
private void fillArray() {
Random random = new Random(int.Parse(txtSeed.Text));
for (int i = 0; i < randArray.Length; i++) {
int randomNumber = random.Next(1, 51);
randArray[i] = randomNumber;
}
}
private void displayArray() {
for (int i = 0; i < randArray.Length; i++) {
txtLotto.AppendText(randArray[i].ToString().PadRight(3));
}
txtLotto.AppendText("\r\n");
}
private void sortArray() {
txtLotto.Text = "";
for (int i = 0; i < randArray.Length; i++) {
for (int j = 0; j < randArray.Length - 1; j++) {
if (randArray[j] > randArray[j + 1]) {
swap(ref randArray[j], ref randArray[j + 1]);
}
}
displayArray();
}
}
private void swap(ref int a, ref int b) {
int tempA = a;
a = b;
b = tempA;
}
sortArray()
函数中,第一个for
循环应该测试数组是否已经排序过,并在这种情况下执行一个break
。 - Vyrira