Bubblesort int仅返回0

1 c# visual-studio-2010 bubble-sort

所以我有这个家庭作业(唯一的原因,为什么一个人会做Bubbleort)

使用visual studio我制作了2个阵列,其中一个是未分类数字,第二个是数字排序.

我的代码将在此处粘贴,只会在两个数组中返回0,我不知道我做错了所以请帮帮我!

namespace WindowsFormsApplication5
{
    public partial class Form1 : Form
    {


        public Form1()
        {
            InitializeComponent();
        }

        private void btnBubbleSort_Click(object sender, EventArgs e)
        {
            int[] numbers = new int[100];
            foreach (int value in numbers)
            {
                lstBubbleUnorderd.Items.Add(value);

            }

            for (int y = 0; y < 100; y++)
            {
                for (int i = 100 - 1; i > y; --i)
                {
                    if (numbers[i] <= numbers[i - 1])
                    {
                        int temp = numbers[i];
                        numbers[i] = numbers[i - 1];
                        numbers[i - 1] = temp;
                    }
                }
            }
            for (int j = 0; j < 100; j++)
            {
                lstBubbleOrderd.Items.Add(numbers[j]);

            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

================================================== =========================================

我的代码现在正在工作,感谢你的家伙

我的新代码如下:

namespace WindowsFormsApplication5 {public partial class Form1:Form {

    public Form1()
    {
        InitializeComponent();


    }

    private void btnBubbleSort_Click(object sender, EventArgs e)
    {
        lstBubbleOrderd.Items.Clear();
        lstBubbleUnorderd.Items.Clear();

        Random RndNmbrs = new Random();
        int n = RndNmbrs.Next();
        for (int a = 0; a < 10; a++)

        lstBubbleUnorderd.Items.Add(RndNmbrs.Next(0, 10));
        int[] numbers = new int[lstBubbleUnorderd.Items.Count];
        for (int i = 0; i < numbers.Length; i++)
        {
            numbers[i] = int.Parse(lstBubbleUnorderd.Items[i].ToString());
        }



        for (int y = 0; y < numbers.Length; y++)

        {           

            for (int i = numbers.Length - 1; i > y; --i)
            {
                if (numbers[i] <= numbers[i - 1])
        {
                int temp = numbers[i];
                numbers[i] = numbers[i - 1];
                numbers[i - 1] = temp;
    }
}


                for (int j = 0; j < numbers.Length; j++)
            {
                lstBubbleOrderd.Items.Add(numbers[j]);
            }

        }

    private void button1_Click(object sender, EventArgs e)
    {

    }
    }
}
Run Code Online (Sandbox Code Playgroud)

p.s*_*w.g 6

您在此处创建了数组:

int[] numbers = new int[100];
Run Code Online (Sandbox Code Playgroud)

但是你从来没有用任何东西填充它,所以它的所有值都被初始化为零.

或许你打算做的是这样的事情(结合leemo答案的建议)?

int[] numbers = new int[lstBubbleUnorderd.Items.Count];
for (int i = 0; i < numbers.Length; i++)
{
    numbers[i] = int.Parse(lstBubbleUnorderd.Items[i].ToString());
}
for (int y = 0; y < numbers.Length; y++)
{
    for (int i = numbers.Length - 1; i > y; --i)
    {
        if (numbers[i] <= numbers[i - 1])
        {
            int temp = numbers[i];
            numbers[i] = numbers[i - 1];
            numbers[i - 1] = temp;
        }
    }
}
for (int j = 0; j < numbers.Length; j++)
{
    lstBubbleOrderd.Items.Add(numbers[j]);
}
Run Code Online (Sandbox Code Playgroud)

这将会读取已输入的任何号码lstBubbleUnorderd到您的numbers阵列,排序,然后打印它们放在lstBubbleOrderd.