我想用bubblesort对数组[10]进行排序,并将未排序/排序的项目放在列表框中。 但是数组没有排序,并且总是返回相同的数字数组。
private void button1_Click(object sender, EventArgs e)
{
lblB.Show();
lblQ.Hide();
lbS.Items.Clear();
lbU.Items.Clear();
Random r = new Random();
int n = 10;
int[] arr = new int[n];
//listbox fill random
for (int i = 0; i < arr.Length; i++)
{
arr[i] = r.Next(0, 20);
lbU.Items.Add(arr[i]);
}
int temp = 0;
for (int i = 0; i < arr.Length; i++)
{
for (int j = 0; j < arr.Length; j++)
{
if (arr[i] < arr.Length)
{
temp = arr[i];
arr[i] = j;
arr[j] = temp;
}
}
}
for (int i = 0; i < arr.Length; i++)
{
lbS.Items.Add(arr[i]);
}
}
我在这里遗漏了什么,
非常感谢任何帮助。
答案 0 :(得分:2)
您的代码中存在错误,即对数组进行排序:
for (int i = 0; i < arr.Length; i++)
{
for (int j = 0; j < arr.Length; j++)
{
if (arr[i] < arr.Length)
{
temp = arr[i];
arr[i] = j; // <<-- Mistake here - should be arr[i] = arr[j];
arr[j] = temp;
}
}
}