各种算法总结三

各种算法总结三

    今天,继续看看我们的额基础算法总结之, 直接选择排序和我们的堆栈排序;

 前面的几种基础算法中,我们都发现一个规律吧,也就是:比较嘛,可能需要一个参数滴啊;我们的选择排序也是这样的滴呀;

 我们先求出数组中最小的一个值滴呀;

 第一土方法:(最小的一个数据,它肯定比数组中的每一数都要小滴呀)

  public static void FuckSort()
        {
            var arr = new int[8] { 2, 5, 3, 1, 34, 56, 434, 8 };
            var len = arr.Length;
            var min = 0;
            for (var i = 0; i < len; i++)
            {
                var count = 0;
                for (var j = 0; j < len; j++) 
                {
                    if (arr[i] < arr[j])
                    {
                        count++; //它必须必数组中的每一值都小滴呀;
                    }
                }
                if (count == len - 1) //数组中最小额一个值
                {
                    min = arr[i];
                    Console.Write("min value is:{0}",min);
                    break;
                }
            }
        }

代码优化,逐渐递减的方式,没有必要对每一个数据都进行比较滴呀;就是各种递减滴呀;

第一个数据a,找到比a小的b,交换,再找比b还小的c,再照比c还小的,就这样的不断地额递减滴呀;始终保持,自己手中拿到的最小的一个值滴呀;

     var arr = new int[8] { 9, 5, 3, 16, 2, 56, 434, 8 };
            var len = arr.Length;
            var min = arr[0]; //选择一个参照物体滴呀;
            for (var i = 0; i < len; i++)
            {
               if (arr[i] < min)
                {
                    min = arr[i];
                }
            }
            Console.WriteLine("the min value is:{0}",min);

然后接着就是我们的快速选择排序滴呀;

      public static void DirectSort()
        {
            //直接选择排序的基本思想:每次都选择一个当前数组中最小的一个值滴呀;
            //是相对简单的一种做法;
            //这样我们的排序结果就出来滴呀;
            var arr= new int[8] { 2, 5, 3, 1,34,56,434, 8 };
            var len = arr.Length;
            int temp;
            var position = 0;
            for(var i = 0; i < len; i++)
            {
                //最小的一个数,它比数组中的任何一个人都要小弟呀
                position = i;
                for(var j = 0+i; j < len; j++) //比较的次数也在一次次的减少滴呀;
                {
                    if (arr[position]>arr[j])
                    {
                        position = j;  //一种逐渐递减的方式,来进行不断寻找;
                    }
                }
                temp = arr[i];
                arr[i] = arr[position];
                arr[position] = temp;

            }

            //这样我们额排序就算是基本的结束了滴呀;效果还是不错滴呀;
            foreach(var i in arr)
            {
                Console.Write(" {0} ",i);
            }
            //效果还是不错滴呀;
            Console.ReadLine();
        }

//总的来说,效果还是不错滴呀;

好吧,这个基本的算法,我们就算是搞定了;

原文地址:https://www.cnblogs.com/mc67/p/6211231.html