zoukankan      html  css  js  c++  java
  • c#的常用排序

    class Program
        {
            static void Main(string[] args)
            {
                int[] arr ={ 23,3, 2, 5, 6, 1, 234, 4, 345, 567, 7 };

                print(arr);

                //QuickSort(arr,0,arr.Length-1);
                selectSort(arr);

                print(arr);           
            }

            private static void selectSort(int []arr)
            {
                for (int i = 0; i < arr.Length - 1;i++ )
                {
                    for (int j = i + 1; j <=arr.Length - 1;j++ )
                    {
                        if(arr[i]>arr[j])
                        {
                            int temp = arr[i];
                            arr[i] = arr[j];
                            arr[j] = temp;
                        }
                    }
                }
            }

            private static void QuickSort(int[] arr,int low,int high)
            {
                if(low<high)
                {
                    int pivotLoc = partialQuickSort(arr,low,high);
                    QuickSort(arr,low,pivotLoc-1);
                    QuickSort(arr,pivotLoc+1,high);
                }
            }

            private static int partialQuickSort(int[] arr, int low, int high)
            {           
                int pivot = arr[low];
                int pivotIndex = low;
                while (low < high)
                {
                    while (low < high && arr[high] >= pivot)
                    {
                        high--;
                    }

                    int temp = arr[pivotIndex];
                    arr[pivotIndex] = arr[high];
                    arr[high] = temp;

                    pivotIndex = high;

                    while (low < high && arr[low] <= pivot)
                    {
                        low++;
                    }

                    temp = arr[pivotIndex];
                    arr[pivotIndex] = arr[low];
                    arr[low] = temp;

                    pivotIndex = low;
                }

                return pivotIndex;
            }       

            private static void BubbleSort(int []arr)
            {
                for (int i = 0; i < arr.Length-1; i++)
                {
                    bool isChange = false;
                    for (int j = 0; j < arr.Length - 1-i; j++)
                    {
                        if (arr[j]<arr[j+1])
                        {
                            isChange = true;
                            int temp = arr[j];
                            arr[j] = arr[j + 1];
                            arr[j + 1] = temp;
                        }
                    }
                    if(!isChange)
                    {
                        return;
                    }
                }
            }

            private static void print(int []arr)
            {
                for (int i = 0; i < arr.Length; i++)
                {
                    if (i != arr.Length - 1)
                    {
                        Console.Write("{0,3},", arr[i].ToString().PadLeft());
                    }
                    else
                    {
                        Console.Write("{0,3}", arr[i]);
                    }
                }
                Console.WriteLine();
            }
        }

  • 相关阅读:
    深入Spring Security魔幻山谷-获取认证机制核心原理讲解
    灵魂拷问:你真的理解System.out.println()打印原理吗?
    解决分布式React前端在开发环境的跨域问题
    “我以为”与“实际上”
    前端:如何让background背景图片进行CSS自适应
    VSCode如何设置Vue前端的debug调试
    【JDBC】总结
    【JDBC第9章】Apache-DBUtils实现CRUD操作
    【JDBC第8章】数据库连接池
    【JDBC第7章】DAO及相关实现类
  • 原文地址:https://www.cnblogs.com/cxd4321/p/797841.html
Copyright © 2011-2022 走看看