• 各种算法总结三


    各种算法总结三

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

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

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

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

      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();
            }

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

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

  • 相关阅读:
    机器学习1
    第15次作业
    算符优先分析
    自下而上语法分析
    实验二 递归下降语法分析
    LL(1)文法的判断,递归下降分析程序
    消除左递归
    【shell】通过shell编写ping包及arp的监控并发送短信
    os和sys模块
    time模块和random模块
  • 原文地址:https://www.cnblogs.com/mc67/p/6211231.html
Copyright © 2020-2023  润新知