方法一:通过if-else语句实现有限数值的比较

//定义三个变量a,b,c并赋值
            int a = 13;
            int b = 32;
            int c = 23;
            
            if (a > b) //假设a的值大于b的值,若成立则判断a与c的值
            {
                if (a > c) //若a的值大于c的值,则输出a最大
                {
                    Console.WriteLine("最大值为 a = " + a);
                }
                else  //若a的值小于c,则输出c最大
                {
                    Console.WriteLine("最大值为 c = " + c);
                }

                //若a大于b的假设不成立,即a小于b,则判断b与c的大小

                if (b > c) //若b大于c,则输出c最小
                {
                    Console.WriteLine("最小值为 c = " + c);
                }
                else //反之则输出b最小
                {
                    Console.WriteLine("最小值为 b = " + b);
                }
            }
            else  
            {
                if (b > c) //判断b与c的大小,若b大于c则输出最大值b
                {
                    Console.WriteLine("最大值为 b = " + b);
                }
                else  //反之输出最大值c
                {
                    Console.WriteLine("最大值为 c = " + c);
                }
                if (a > c) //判断a与c的大小,若a大,则输出最小值c
                {
                    Console.WriteLine("最小值为 c = " + c);
                }
                else  //反之输出最小值a
                {
                    Console.WriteLine("最小值为 a = " + a);
                }

总结:(1)优点:通过if-else语句实现数值之间的比较逻辑较为简单直接,容易理解。

           (2)缺点:if-else逻辑判断在需要进行大量的数值比较时将十分繁琐,并且不可以比较任意数量的数值。

 

方法二:冒泡排序(一个for循环实现)

int[] number = new int[] { 12, 3, 44, 62, 15, 32, 35, 8 };//定义一个数组
            int j, temp;
            for (int i = 0; i < number.Length - 1; i++)              //第一个元素与之后每一个元素比较一次  
            {
                j = i + 1;
            id:                            //定义个标签方便反复调用
                if (number[i] < number[j]) //将比较结果前面元素若小于后面元素则互换
                {
                    temp = number[i];
                    number[i] = number[j];
                    number[j] = temp;
                    goto id;
                }
                else if (j < number.Length - 1)
                {
                    j++;
                    goto id;
                }
            }
            foreach (int n in number)
            {
                Console.Write(n + " ");
            }

总结:冒泡排序的原理是第一次循环先由第一个数与第二个、第三个……最后一个数相比较,若前一个小于/大于后一个数则两数对调,再由第二个与第三             个、第四个……最后一个相比较,一直到最后两个数相比较,达到所有数按照一定的规律输出(从大到小/从小到大)。

 

方法三:冒泡排序(两个for循环)

int[] number = new int[] { 12, 3, 44, 62, 15, 32, 35, 8 };
            for (int i = 0; i < number.Length; i++)
            {
                for (int j = i + 1; j < number.Length; j++)
                {
                    int temp;
                    if (number[i] < number[j])
                    {
                        temp = number[i];
                        number[i] = number[j];
                        number[j] = temp;
                    }
                }
            }
            foreach (int n in number)
            {
                Console.Write(n + " ");
            }

总结:与单个for循环的冒泡排序法相比区别在于:一个是在for循环内定义标签通过goto跳转语句实现两层循环,一个则是在for循环内嵌套for循环实现两层           循环。虽写法不同,但原理相通。

 

方法四:利用集合灵活实现冒泡排序

   

List<int> Iint = new List<int>();
            string stop = string.Empty;  //控制停止变量
            do
            {
                Console.WriteLine("请输入需要排序的一个数:");
                int number = int.Parse(Console.ReadLine());  //从控制台获取要比较的数
                Iint.Add(number);
                Console.WriteLine("是否继续添加? 是:y/否:n");
                stop = Console.ReadLine();
            }
            while (stop == "y");
            int temp;
            for (int i = 0; i < Iint.Count; i++)  //冒泡排序方法
            {
                for (int j = i + 1; j < Iint.Count; j++)
                {
                    if (Iint[i] < Iint[j])
                    {
                        temp = Iint[i];
                        Iint[i] = Iint[j];
                        Iint[j] = temp;
                    }
                }
            }
            Console.WriteLine("排序后结果为:");
            foreach (int n in Iint)
            {
                Console.Write(n + " ");
            }

总结:利用集合实现冒泡排序可以比较任意数量的数值,是最灵活的排序比较方法。

注:本文重点为实现数值比较及排序,并未对控制台输入字符是否合理做出异常处理,请见谅。