【问题标题】:Bubblesort listbox Am i missing something?冒泡排序列表框我错过了什么吗?
【发布时间】:2013-03-22 20:16:09
【问题描述】:

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

    }

我是不是错过了什么,

任何帮助将不胜感激。

【问题讨论】:

  • 我在你的代码中没有看到对lbS.Items.Add的调用...
  • 你是说arr[i] &lt; arr[j] 吗?
  • 你说得对,杰森,我已经更新了代码。
  • 啊,多谢 Robb,我一定忽略了这一点。
  • 请接受答案,而不是附加“已解决”。如果提供的内容没有帮助,请自行发布并尽快接受。

标签: c# bubble-sort


【解决方案1】:

您在对数组进行排序的代码中存在错误:

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;
       }    
   }            
}

【讨论】:

    猜你喜欢
    • 2020-11-11
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 2015-09-12
    • 2020-08-07
    • 1970-01-01
    • 2016-05-17
    相关资源
    最近更新 更多