【算法】——选择排序

来源:互联网 发布:手机移动数据自己打开 编辑:程序博客网 时间:2024/06/05 23:00

前言:

        近期很多时间用来学习算法上了,之前每一次学习算法都是纸上谈兵,打嘴炮,看看,说说,以为思路搞清楚了就万事大吉了,不去理会大家说的一定要去自己做,动手就想着我动手了啊,我明白了啊。其实都是给自己找借口偷懒。这次的学习过程非常的棒,从自我感觉良好——写不出代码——搞不清思路——demo实现。虽然还不能都搞清楚,但是这次的进步是非常大的,真的去动手实践,理论加实际运用,在做的过程中去收获。当然学习的过程非常重要,那么颗粒归仓是必不可少的一步了。


选择排序:

        选择排序的基本思想:每一次在n-i+1个记录中选取最小的记录作为作为有序序列的第i个记录。

        选择排序有直接选择排序和堆排序。本次介绍直接选择排序。






代码:

namespace 选择排序{    class Program    {        static void Main(string[] args)        {            int[] arr = new int[20];        //定义一个大小为20的数组。            System.Random random = new Random();            for (int i = 0; i < arr.Length ; i++)       //随机产生小于200 的数并传给数组arr【】。            {                int result = random.Next(200) ;                arr[i] = result;            }            selectsort s = new selectsort();            s.sort(arr);            foreach (var m in arr)          //遍历            {                Console.WriteLine("{0}", m);            }            Console.ReadKey();        }    }}namespace 选择排序{    class selectsort    {     #region 方法一  使用下标         public void sort(int[] arr)        {            for (int i = 0; i < arr.Length-1 ; i++)            {                int  min = i;                for (int j = i+1; j < arr.Length ; j++)                {                    if (arr[min]>arr[j])                    {                        min = j;                    }                                    }                int t = arr[min];                arr[min] = arr[i];                arr[i] = t;            }#endregion              #region 方法二  直接交换            public void sort(int[] arr)            {                int temp=0;                for (int i = 0; i < arr.Length -1; i++){                for (int j = i+1; j < arr.Length ; j++)                {                    if (arr[j]


未完~~