冒泡排序法demo(两层嵌套for循环)

namespace ConsoleDemo

{

    /// <summary>

    /// 双层循环实现冒泡排序

    /// </summary>

    class Program

    {

        static void Main(string[] args)

        {

            SortedNumbers();

        }

        /// <summary>

        /// 该方法获得需要排序的数组,表调用排序方法进行排序

        /// </summary>

        public static void SortedNumbers()

        {

            int numberCount;

            int[] numbers;

            Console.WriteLine("----------silly冒泡排序法----------");

            Console.WriteLine("请问您要对多少为数字进行排序?");

            numberCount = Convert.ToInt32(Console.ReadLine());

            numbers = new int[numberCount];

            Console.WriteLine("请输入您要进行排序的这{0}个数字:",numberCount);

            for (int i = 0; i < numberCount; i++)

            {

                numbers[i] = Convert.ToInt32(Console.ReadLine());

            }

            Console.WriteLine("\n您要进行排序的{0}个数字分别为:",numberCount);

            for (int i = 0; i < numberCount; i++)

            {

                Console.Write(numbers[i].ToString() + "\t");

            }

            Console.WriteLine("\n您要对这{0}个数字进行什么排序?(1表示升序,2表示降序)",numberCount);

            int method = Convert.ToInt32(Console.ReadLine());

            while (method != 1 && method != 2)

            {

                Console.WriteLine("只能输入1或者2,请您重新输入!");

                method = Convert.ToInt32(Console.ReadLine());

            }

            //调用排序方法

            ExecuteSortedMethod(numbers, method);

            Console.WriteLine("排序后的结果为:");

            for (int i = 0; i < numberCount; i++)

            {

                Console.Write(numbers[i].ToString() + "\t");

            }

            Console.WriteLine("\n----------sisi冒泡排序法----------");

            Console.ReadKey();

        }

        /// <summary>

        /// 接受数字参数和排序方法参数,进行冒泡排序

        /// </summary>

        /// <param name="num">要进行排序的整数数组</param>

        /// <param name="sortedMethod">排序方法标识:1为升序,2为降序</param>

        public static void ExecuteSortedMethod(int[] num, int sortedMethod)

        {

            if (sortedMethod == 1)      //升序排列

            {

                for (int i = 0; i < num.Length -1; i++)

                {

                    for (int j = 0; j < num.Length - 1 - i; j++)

                    {

                        if (num[j] > num[j + 1])

                        {

                            int temp = num[j];

                            num[j] = num[j + 1];

                            num[j + 1] = temp;

                        }

                    }

                }

            }

            if (sortedMethod == 2)      //降序排列

            {

                for (int i = 0; i < num.Length - 1; i++)

                {

                    for (int j = 0; j < num.Length - 1 - i; j++)

                    {

                        if (num[j] < num[j + 1])

                        {

                            int temp = num[j];

                            num[j] = num[j + 1];

                            num[j + 1] = temp;

                        }

                    }

                }

            }

        }

    }

}

原文地址:https://www.cnblogs.com/lqsilly/p/2917559.html