我的C#学习历程

来源:互联网 发布:mac词典设置 编辑:程序博客网 时间:2024/05/29 20:00

冒泡排序

class Program    {        //声明一个全局变量        static List<int> Lis_ = new List<int>();        static void Main(string[] args)        {            //调用Fun_Ran方法,从0~100中随机数字            Fun_Ran(Lis_, 20,0,100);            //调用冒泡排序方法            Buble(Lis_);        }        static void Fun_Ran(List<int> list, int count, int min, int max)        {            //实例一个随机            Random number = new Random();            for (int index = 0; index < count; index++)            {                //从最小值和最大值中随机一个值赋值于一个变量,并将这个变量添加到链表中                int value = number.Next(min, max);                list.Add(value);            }            Lis_ = new List<int>(list.ToArray());        }        //冒泡排序;从一段数列中分别选取两个数进行比较,        //第一个数从数列的前端循环选取,第二个数从数列的后端循环开始选取        //在两两比较的过程中,如果第一个数大于第二个,将交换他们的位置        //当数列中所有数都被比较过后,排序完成        static void Buble(List<int> list)        {            List<int> Lis_Bub = Lis_;            bool flag = true;            int temp;            for (int i = 0; i < Lis_Bub.Count&&flag; ++i)            {                flag = false;                for (int j = Lis_Bub.Count - 1; j > i; --j)                {                    if (Lis_Bub[j] < Lis_Bub[j - 1])                    {                        //如果满足上述条件则执行以下代码,flag会变为true                        //反之,将不执行以下代码,此时flag会保留第一次循环之后的false                        //那么,再次进入第一次循环时判定条件会变为false,就不再执行循环                        //这样可以提高排序效率,以下是交换数据位置                        temp = Lis_Bub[j - 1];                        Lis_Bub[j - 1] = Lis_Bub[j];                        Lis_Bub[j] = temp;                        flag = true;                    }                }            }            Printf(Lis_Bub);        }        static void Printf(List<int> list)        {            Console.Write("结果是:");            foreach (int i in list)            {                Console.Write("{0} ",i);            }            Console.WriteLine();        }    }

0 0
原创粉丝点击