zoukankan      html  css  js  c++  java
  • lintcode-464-整数排序 II

    464-整数排序 II

    给一组整数,按照升序排序。使用归并排序,快速排序,堆排序或者任何其他 O(n log n) 的排序算法。

    样例

    给出 [3, 2, 1, 4, 5], 排序后的结果为 [1, 2, 3, 4, 5]。

    标签

    排序 快速排序 归并排序

    思路

    使用快速排序

    code

    class Solution {
    public:
        /**
         * @param A an integer array
         * @return void
         */
        void sortIntegers2(vector<int>& A) {
            // Write your code here
            int size = A.size();
            if (size <= 1) {
                return;
            }
            quitSort(A, 0, size - 1);
        }
    
        void quitSort(vector<int> &A, int left, int right) {
            if (left < right) {
                int i = left, j = right, x = A[i];
                while (i < j) {
                    while (i < j && A[j] >= x) {
                        j--;
                    }
                    if (i < j) {
                        A[i] = A[j];
                        i++;
                    }
                    while (i < j && A[i] < x) {
                        i++;
                    }
                    if (i < j) {
                        A[j] = A[i];
                        j--;
                    }
                }
                A[i] = x;
                quitSort(A, left, i - 1);
                quitSort(A, i + 1, right);
            }
        }
    };
    
  • 相关阅读:
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
  • 原文地址:https://www.cnblogs.com/libaoquan/p/7403009.html
Copyright © 2011-2022 走看看