zoukankan      html  css  js  c++  java
  • 排序算法

     /// <summary>
            /// 冒泡排序
            /// </summary>
            /// <param name="arr"></param>
            public static void BuildderScort(int[] arr)
            {
                for (int i = 0; i < arr.Length- 1; i++)
                {
                    for (int j = 0; j < arr.Length-1-i; j++)
                    {
                        if (arr[j] > arr[j + 1])
                        {
                            int temp = arr[j];
                            arr[j] = arr[j + 1];
                            arr[j + 1] = temp;
                        }
                    }
                }
            }
            /// <summary>
            /// 选择排序
            /// </summary>
            /// <param name="arr"></param>
            public static void SelectScort(int[] arr)
            {
                for (int i = 0; i < arr.Length; i++)
                {
                    int minValue = arr[i];
                    int minIndex = i;
                    for (int j = i; j < arr.Length; j++)
                    {
                        if (minValue > arr[j])
                        {
                            minValue = arr[j];
                            minIndex = j;
                        }
                    }
                    int temp = arr[minIndex];
                    arr[minIndex] = arr[i];
                    arr[i] = temp;
                }
            }
            /// <summary>
            /// 插入排序
            /// </summary>
            /// <param name="arr"></param>
            public static void InsertScort(int[] arr)
            {
                for (int i = 0; i < arr.Length; i++)
                {
                    int insertValue = arr[i];
                    int insertIndex = i- 1;
                    while (insertIndex >= 0 && insertValue <= arr[insertIndex])
                    {
                        arr[insertIndex + 1] = arr[insertIndex];
                        insertIndex--;
                    }
                    arr[insertIndex + 1] = insertValue;
                }
            }
            /// <summary>
            /// 快速排序
            /// </summary>
            /// <param name="left"></param>
            /// <param name="right"></param>
            /// <param name="arr"></param>
            /// <returns></returns>
            private static int Quick(int left, int right, int[] arr)
            {
                int temp = arr[left];
                while (left < right)
                {
                    while (left < right && arr[right] >= temp)
                    {
                        right--;
                    }
                    if (left < right)
                    {
                        arr[left] = arr[right];
                        left++;
                    }
                    while (left < right && arr[left] < temp)
                    {
                        left++;
                    }
                    if (left < right)
                    {
                        arr[right] = arr[left];
                        right--;
                    }
                }
                arr[left] = temp;
                return left;
            }
            public static void QuickScort(int left, int right, int[] arr)
            {
                if (left < right)
                {
                    int temp = Quick(left, right, arr);
                    QuickScort(left, temp- 1, arr);
                    QuickScort(temp + 1, right, arr);
                }
            }
  • 相关阅读:
    build tools
    文档系统总结
    各进制及其转换详解
    JQuery 函数执行顺序
    计算页面宽高的函数
    Linq中的多表左联,详细语句
    css设置滚动条颜色与样式以及如何去掉与隐藏滚动条
    基于JQUERY写的 LISTBOX 选择器
    js/jquery 实时监听输入框值变化的完美方案:oninput & onpropertychange
    JQuery select控件的相关操作
  • 原文地址:https://www.cnblogs.com/LoVeSW/p/3425211.html
Copyright © 2011-2022 走看看