冒泡排序-练习题

using System;

namespace lesson13_冒泡排序练习题

{

    class Program

    {

        

        #region 练习题1

         //定义一个数组,长度为20,每个元素值随机0到100的数

         //使用冒泡排序进行升序排序并打印

         //使用冒泡排序进行降序排序并打印

        static void A()

        {

            int[] a = new int[20];

            for (int i = 0; i < a.Length; i++)

            {

                Random rd = new Random();

                int sjs = rd.Next(1, 100);

                a[i] = sjs;

            }

            //升序

            for (int j = 0; j < a.Length; j++)

            {

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

                {

                    if (a[i] > a[i + 1])

                    {

                        int x = 0;

                        x = a[i];

                        a[i] = a[i + 1];

                        a[i + 1] = x;

                    }

                }

            }

            for (int i = 0; i < a.Length; i++)

            {

                Console.Write(" " + a[i]);

            }

            Console.WriteLine();

            //逆序

            for (int j = 0; j < a.Length; j++)

            {

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

                {

                    if (a[i] < a[i + 1])

                    {

                        int x = 0;

                        x = a[i];

                        a[i] = a[i + 1];

                        a[i + 1] = x;

                    }

                }

            }

            for (int i = 0; i < a.Length; i++)

            {

                Console.Write(" " + a[i]);

            }

        }

        #endregion

        #region 练习题2

        //写一个函数,实现一个数组的排序,并返回结果。可以根据参数决定是升序还是降序

        static void B(bool a)

        {

            int[] b = new int[20];

            for (int i = 0; i < b.Length; i++)

            {

                Random rd = new Random();

                int sjs = rd.Next(1, 100);

                b[i] = sjs;

            }

            if (a == true)

            {

                for (int j = 0; j < b.Length; j++)

                {

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

                    {

                        if (b[i] > b[i + 1])

                        {

                            int x = 0;

                            x = b[i];

                            b[i] = b[i + 1];

                            b[i + 1] = x;

                        }

                    }

                }

                for (int i = 0; i < b.Length; i++)

                {

                    Console.Write(" " + b[i]);

                }

            }

            else

            {

                for (int j = 0; j < b.Length; j++)

                {

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

                    {

                        if (b[i] < b[i + 1])

                        {

                            int x = 0;

                            x = b[i];

                            b[i] = b[i + 1];

                            b[i + 1] = x;

                        }

                    }

                }

                for (int i = 0; i < b.Length; i++)

                {

                    Console.Write(" " + b[i]);

                }

            }

        }

        

        #endregion

        static void Main(string[] args)

        {

            Console.WriteLine("冒泡排序练习题");

            A();

            Console.WriteLine();

            B(false);

        }

    }

}

猜你喜欢

转载自blog.csdn.net/weixin_61541885/article/details/128745080