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

      public void quickSort(int[] nums,int left,int right)
            {
                if (nums.Length==0||nums==null||left>right)
                {
                    return;
                }
                int i = left;
                int j = right;
                int key = nums[left];////这个key是会变的,以每次数组的最左边一个数为key,即比较的对象,i往右移遇到比key大的数就停住,j往左移遇到比key小的数就停住,两个都停住时
                while (i!=j)//也可以是while (i<j)
                {
                    while (nums[j]>=key&&j>i)
                    {
                        j--;
                    }
                    while (nums[i]<=key&&i<j)
                    {
                        i++;
                    }
                    //nums[i]与nums[j]互换,前提是i<j(大前提)
                    if (i<j)
                    {
                        int temp = nums[i];
                        nums[i] = nums[j];
                        nums[j] = temp;
                    }
                }
              
                nums[left] = nums[i];//因为nums[i]永远会比key小,因为他会与nums[j]互换,而nums[j]只有比key小的时候才会停住
                nums[i] = key;
                quickSort(nums, left, i - 1);
                quickSort(nums, i + 1, right);
              
            }

    时间复杂度为O(nlogn)

  • 相关阅读:
    Domino+Qucikplace+Sametime构建企业办公平台图文攻略(一)
    GridPanel如果不设宽度,在IE下会变得很宽问题解决
    Domino+Qucikplace+Sametime构建企业办公平台图文攻略(二)
    extjs可视化开发工具
    JSON
    Domino的命名空间
    封装的ExtGrid 实现增、删、改、查等功能
    lotus 附件的存、 取 、删
    asp.net DateTime的使用
    SQL Server里面可能经常会用到的日期格式转换方法
  • 原文地址:https://www.cnblogs.com/wl889490/p/12824025.html
Copyright © 2011-2022 走看看