C# 实现冒泡排序

今天给大家分享冒泡排序,这个是最常用的算法之一,因为这个比较容易理解,多数人在他们要进行排序的时候首先使用的就是这个算法。这个算法比较容易理解。对于冒泡排序,主要采用的是相邻数两两进行比较的思想。如果后一个比前一个大或者小,则将其调换位置,直至所有的数都比较完。如果给定一个大小为n的数组,那么需要比较n-1趟,每一趟比较n-1-i次 ,i 表示上次循环中已经比较完的下标。写两个循环判断,如需交换则进行交换,如果不需要交换则进行下两个数的比较,直到所有的数比较完。最后,用一个循环将排序完成后的数全部输出。代码如下:

/// <summary>
    /// 排序
    /// </summary>
    public class Sort
    {
       /// <summary>
       /// 冒泡排序
       /// </summary>
       /// <param name="db">待排序的数组</param>
       /// <returns></returns>
       public static double[] GetBubbleSort(double [] db)
        {
            for(int i = 0; i < db.Length; i++)
            {
                for(int j = 0; j < db.Length - i - 1; j++)
                {
                    if(db[j] > db[j + 1])
                    {
                        double temp = db[j];
                        db[j] = db[j + 1];
                        db[j + 1] = temp;
                    }
                }
            }
            return db;
        }
        static void Main(string[] args)
        {


            //1、数组排序测试
            var db = new double[] { 20.3, 11.4, 33.1, 45.2, 50.1, 60.5 };
            Console.Write("排序前的结果:");
            TestDemo.Print(db);
            db = Sort.GetBubbleSort(db);
            Console.Write("\n排序后的结果:");
            TestDemo.Print(db);
            Console.WriteLine("\n\n==============================================");
        }
    }

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值