zoukankan      html  css  js  c++  java
  • 快速排序

    快速排序有很多优化版本,在此仅列出最基本的方法。参见链接

    /* This function takes last element as pivot,
           places the pivot element at its correct
           position in sorted array, and places all
           smaller (smaller than pivot) to left of
           pivot and all greater elements to right
           of pivot */
        int partition(int arr[], int low, int high)
        {
            int pivot = arr[high]; 
            int i = (low-1); // index of smaller element
            for (int j=low; j<high; j++)
            {
                // If current element is smaller than the pivot
                if (arr[j] < pivot)
                {
                    i++;
      
                    // swap arr[i] and arr[j]
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
      
            // swap arr[i+1] and arr[high] (or pivot)
            int temp = arr[i+1];
            arr[i+1] = arr[high];
            arr[high] = temp;
      
            return i+1;
        }
      
      
        /* The main function that implements QuickSort()
          arr[] --> Array to be sorted,
          low  --> Starting index,
          high  --> Ending index */
        void sort(int arr[], int low, int high)
        {
            if (low < high)
            {
                /* pi is partitioning index, arr[pi] is 
                  now at right place */
                int pi = partition(arr, low, high);
      
                // Recursively sort elements before
                // partition and after partition
                sort(arr, low, pi-1);
                sort(arr, pi+1, high);
            }
        }
  • 相关阅读:
    bzoj4849: [Neerc2016]Mole Tunnels
    bzoj 4069~4071 APIO2015
    bzoj 4885: [Lydsy2017年5月月赛]长方体
    bzoj4891: [Tjoi2017]龙舟
    bzoj4892: [Tjoi2017]dna
    bzoj 3159: 决战
    bzoj3672: [Noi2014]购票
    bzoj4738: 汽水
    bzoj 4737: 组合数问题
    bzoj 4872: [Shoi2017]分手是祝愿
  • 原文地址:https://www.cnblogs.com/faded828x/p/13286062.html
Copyright © 2011-2022 走看看