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;
                        }
                    }
                }
            }
  • 相关阅读:
    IP fragmentation
    pci驱动
    cpu地址空间
    CentOS7 安装bazel
    kettle集群
    TextRankGloVe算法资料
    使用Kong Service负载均衡Load Balance功能
    自建ss服务器教程
    OpenSSL创建TLS/SSL证书
    监控告警
  • 原文地址:https://www.cnblogs.com/fzz2727551894/p/4180645.html
Copyright © 2011-2022 走看看