• 【算法】 简单选择排序


    【算法】 简单选择排序

         /// <summary>
            /// 简单选择排序
            /// 思路 (与冒泡排序类似):
            /// 遍历源集合,每次选出最大或最小元素,放在未排序子集末尾或首位
            /// </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++)
                {
                    int minIndex = i; // 最小元素索引
                    T minT = list[i]; // 最小元素
                    for (int j = i + 1; j < list.Count; j++)
                    {
                        if (comparer(minT, list[j])) // 判断是否是最小元素
                        {
                            minIndex = j; // 缓存最小元素
                            minT = list[j];
                        }
                    }
                    if (minIndex != i) // 将最小元素与遍历的元素替换位置
                    {
                        list[minIndex] = list[i];
                        list[i] = minT;
                    }
                }
            }
  • 相关阅读:
    Android学习之DatePicker和TimePicker
    Android学习之Spinner
    Android学习之Handler消息
    Android学习之Dialog
    Android学习之SeekBar(控制wav音频的声音)
    Android学习之Gallery
    android R文件不能识别?
    Android学习之RadioGroup和RadioButton
    Android中实现定时器的3中方法
    activity的启动模式有哪些?
  • 原文地址:https://www.cnblogs.com/fzz2727551894/p/4184327.html
Copyright © 2020-2023  润新知