zoukankan      html  css  js  c++  java
  • lintcode:整数排序||

    题目

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

    解题

    归并排序

    public class Solution {
        /**
         * @param A an integer array
         * @return void
         */
        public void sortIntegers2(int[] A) {
            // Write your code here
            if(A==null || A.length <=1)
                return;
            int low = 0;
            int high = A.length - 1;
            mergeSort(A,low,high);
                
        }
        public void mergeSort(int[] A,int low ,int high){
            if(low>=high)
                return;
            int mid = low + (high - low)/2;
            mergeSort(A,low,mid);
            mergeSort(A,mid+1,high);
            merge(A,low,mid,high);
            
            
        }
        public void merge(int[] A,int low,int mid,int high){
            int len = high - low + 1;
            int[] C = new int[len];
            int i = low;
            int j = mid + 1;
            int k = 0;
            while(i<=mid && j<= high){
                if(A[i]>A[j]){
                    C[k++] = A[j];
                    j++;
                }else{
                    C[k++] = A[i];
                    i++;
                }
            }
            while(i<=mid){
                C[k++] = A[i];
                i++;
            }
            while(j<=high){
                C[k++] = A[j];
                j++;
            }
            for(k=0;k<len;k++){
                A[low+k] = C[k];
            }
        }
    }
  • 相关阅读:
    Postgresql常用命令&&函数
    gcc g++参数
    cython编译Python为c语言
    安装python3
    pip 国内源
    ceph 对象存储s3
    Rancher基础
    helm常用命令
    chartmuseum配置和使用
    python-etcd3
  • 原文地址:https://www.cnblogs.com/theskulls/p/5650784.html
Copyright © 2011-2022 走看看