0

我想用冒泡排序对数组 [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]);
        }

    }

我在这里错过了什么吗,

任何帮助将不胜感激。

4

1 回答 1

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;
       }    
   }            
}
于 2013-04-01T18:09:07.720 回答