排序之算法

        话说老师讲算法已经有一段时间了,现在回忆起来那节课很生活、有很趣,下面呢就让在下总结一下那节课的收获,拒绝废话、进入主题:

前面的话:

    选择、冒泡、插入虽然比较简单但是对于刚接触的偶来说,这三位大尊其思维逻辑性还是略强的,遇到这样的情况呢,对我来说走几遍代码或者follow代码的逻辑手算几遍,感觉效果不错,兔子们可以试一试;方法很多、掌握了就好。

选择排序:

 static void Main(string[] args)
        {           
            int[] numbers = { 2, 4, 5, 56, 6,7 };
            int temp = 0;
            for (int i = 0; i < numbers.Length; i++)
            {
              //循环J中 i+1所有变量和numbers[i]比较
                for (int j = i+1; j < numbers.Length; j++)
                {
                    //假设numbers[i]为最值   
            //如果前一个值[i]比后一值[j+1]小,则交换位置——前面永远是最大值
                    if( numbers [i]<numbers [j] )
                    {
                        temp = numbers[i];
                        numbers[i] = numbers[j];
                        numbers[j] = temp;
                    }
                }
            }
            for (int a = 0; a < numbers.Length ; a++)//显示
            {
                Console.WriteLine(numbers[a].ToString());
            }
                Console.ReadKey();
        }

冒泡排序:

     冒泡排序的代码从“百度一下”结果一装一麻袋,所以代码部分就低调飘过好了~~~

   冒泡排序总体思想是小数沉底,大数上浮;

   比如:在需要排序的10个元素中相邻的两个元素进行比较,每次比较将最小的放在后面,大数前移,第一轮比较之后最小的数沉底、放于a(10)的位置;第二轮比较a(1)~a(9),使该轮最小值沉底,放于a(9)的位置,依次类推,排序完成;上(截)图一张:


插入排序:

        插入排序给徒弟讲的时候,成功把他给绕进去了,(*^__^*) 嘻嘻……下面一本正经地总结一下(咳~~我是一个严肃的person) 为兔子们 呈上 抄来的代码 一段:
       int[] numbers = { 17, 78, 56, 67, 77 };
            for(int i=1;i<numbers .Length ;i++)
            {
                int t = numbers[i];
                int j = i;
                //j>0、前面的数大于后面的数,进入循环
                while ((j>0)&&(numbers [j-1]>t))
                {
                    //后一个数=前面的数——最后的数最大
                    numbers[j] = numbers[j - 1];
                    --j;//该处减一
                }
                numbers[j] = t;//所以现在的j是不同于while循环中的j,而是其前面的数
            }
            for(int ii=0;ii<numbers .Length ;ii++)
            {
                Console.WriteLine(numbers [ii].ToString ());
            }
            Console.ReadKey();
        }
           
       满足条件才开始循环,否则不循环:这是插入的special之处

    开始百思不得其解,后来通过走代码,发现了个中奥秘,原来忽视了--j的作用,在while循环中 ”--j“ 通过 j 减1,跳出while循环的 j 已经不再是原来的 “j” 了,而是其前面的一位——惊讶,其他的跟着代码走一遍,大家都这么聪明,我就不写了

一些链接:

                                      欢迎大家前来交流

THE END
THANKS FOR YOUR TIME(*^__^*) 嘻嘻……


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值