【算法学习】--冒泡

前言

    首先感谢婷婷,能够组织起我们几个人一起学习算法。想想之前每次学习都会慢慢的不去用心,现在对于算法的了解还是很有限,这次的学习虽然还是以自己研究为主,但是心态确实有了一个很大的转变,我也相信我可以的很好。


工具

    语言:C#为基础、C为对照。

    工具:VS 、gitbook。

    书籍:《算法大全》、《图解算法》等


过程



窗体设计

    最开始我的想法是每一个算法都新建一个项目,不过团队的力量是强大的,受小白的启发,决定将冗余减到最少,将窗体设计成这样:

生成随机数

    生成随机数本来以为是很简单的过程,但是实际自己敲的时候发现写不出来,然后就查了很多资料,最后还是有三个问题比较模糊,没有尝试:①生成不重复的随机数。②为什么会出现生成的数全部都一样。③生成随机数的不同方法。

    由于时间有限,需要先完成学习任务,就用了以前用的常规的来生成了随机数。

 public int   Number;
        int[] data = { };
        int[] dataone = { };

        //定义一个产生随机数的数组
        public int[] Arr ()
        {
             int[] arr = new int[Number];
            System.Random random = new Random();
            for (int i = 0; i < arr.Length ; i++)
            {
                arr[i] = random.Next(Number);

            }
            return arr;
        }


 private void butRandom_Click(object sender, EventArgs e)
        {

            //清空记录
            listBox1.Items.Clear();
            //将输入的数值给变量
            Number = Convert.ToInt32(txtNumber.Text);
            data=Arr();
            //显示产生的随机数
            for (int i = 0; i < data.Length ; i++)
            {
                listBox1.Items.Add(data[i]);
            }

        }


冒泡排序

    

    升序

    冒泡排序思路:

        比较相邻两个数字,将大的放在第二位。

         两两相邻的一直到最后一位,就是最大的,不需要在去交换它。

         重复前面的步骤,直到左右的都排好。

     


冒泡实现


    直接上代码吧,这一部分还是最简单呢。
 /// <summary>
        /// 冒泡排序实现
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            listBox2.Items.Clear();
            dataone = Arr();
            int temp;
            //冒泡的过程
            for (int i = 1; i < dataone.Length ; i++)
            {
                for (int j = 0; j < dataone.Length-i; j++)
                {
                    if (dataone[j] < dataone[j + 1])
                    {
                        temp = dataone[j+1];
                        dataone[j + 1] = dataone[j];
                        dataone[j] = temp;
                    } 
                }
                 
            }
            //显示排序结果
            for (int k = 0; k < dataone.Length ; k++)
            {
                listBox2.Items.Add(dataone[k]);
            }

        }



总结


    世上无难事只怕有心人,整个过程虽然遇到了很多坎坷,但是却非常的开心,后面还有其他的,继续加油!




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值