zoukankan      html  css  js  c++  java
  • 【算法】 冒泡排序

    【算法】 冒泡排序

            /// <summary>
            /// 冒泡排序
            /// 思路:
            /// 遍历源集合元素,比较相邻的2元素,使大的元素往后移
            /// 第一次遍历相当于选出最大的元素,将其移到最后位
            /// 第二次遍历相当于选出第二大的元素,将其移到最后第二位
            /// 以此类推
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="list">源集合</param>
            /// <param name="comparer">泛型判断函数</param>
            /// <returns></returns>
            public static void Sort<T>(List<T> list, Func<T, T, bool> comparer)
            {
                if (list == null || list.Count <= 1)
                {
                    return;
                }
                for (int i = 0; i < list.Count; i++)
                {
                    for (int j = 0; j < list.Count - i - 1; j++) // 遍历的次数为总元素个数减1再减去外层循环的已循环次数
                    {
                        if (comparer(list[j], list[j + 1]))  // 比较相邻2元素,使大的后移
                        {
                            T temp = list[j];
                            list[j] = list[j + 1];
                            list[j + 1] = temp;
                        }
                    }
                }
            }
  • 相关阅读:
    拖动图片浏览的程序(VB6)
    Nod32升级服务器(转)
    看了部电影"蝴蝶效应"
    BackgroundWorker的替代者! (转)
    为什么我爱黑莓8700
    什么是反射(.NET)[转]
    使用VS2008编写了第一个WM5短信发送程序!
    不睡觉果然还是不行。
    关于net2.0里面新出现的类backgroundworker的应用 (转)
    是男人就打5000分!(C#)
  • 原文地址:https://www.cnblogs.com/fzz2727551894/p/4180645.html
Copyright © 2011-2022 走看看