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);
                }
            }
  • 相关阅读:
    一、反射机制介绍_Class 对象获取
    六、.XPATH 技术_快速获取节点
    五、.DOM4J 方式解析 XML 数据
    四、.JDOM 解析 XML 数据
    三、SAX 方式解析 XML 数据
    二、DOM方式解析XML
    一、Schema验证XML
    三、线程同步Synchronized
    二、线程状态
    JDK8Lambda和方法的引用
  • 原文地址:https://www.cnblogs.com/LoVeSW/p/3425211.html
Copyright © 2011-2022 走看看