冒泡排序

思路:重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,故名。
界面为:
主要代码:
  //重复地走访过要排序的数列,一次比较两个元素,
        //如果他们的顺序错误就把他们交换过来。
        //走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
        private void btnSort_Click(object sender, EventArgs e)
        {
            try
            {
                string beforeSort = txtBeforeSort.Text.ToString();
                string[] sortArr = beforeSort.Split('*');
                List<int> beforeArr = new List<int>();
                foreach (string str in sortArr)
                {
                    int num = int.Parse(str);
                    beforeArr.Add(num);
                }
                int count = beforeArr.Count;

                bool flag = true;
                while (flag)
                {
                    int changeTimes = 0;
                    for (int i = 0; i < count - 1; i++)
                    {
                        if (beforeArr[i] > beforeArr[i + 1])
                        {
                            int num = beforeArr[i];
                            beforeArr[i] = beforeArr[i + 1];
                            beforeArr[i + 1] = num;
                            changeTimes++;
                        }
                    }
                    if (changeTimes == 0)
                    {
                        flag = false;
                    }
                }
                string afterStr = "";
                foreach (int i in beforeArr)
                {
                    afterStr += i.ToString() + "*";
                }
                txtAfterSort.Text = afterStr.Substring(0, afterStr.Length - 1);
            }
            catch (Exception ex)
            {
 
            }
原文地址:https://www.cnblogs.com/nygfcn1234/p/3204859.html