zoukankan      html  css  js  c++  java
  • 【LeetCode刷题】912. 排序数组

    912. 排序数组(点击跳转LeetCode)

    给你一个整数数组nums,请你将该数组升序排列。

    示例 1:

    输入:nums = [5,2,3,1]
    输出:[1,2,3,5]
    

    示例 2:

    输入:nums = [5,1,1,2,0,0]
    输出:[0,0,1,1,2,5]
    

    题解

    语言:C++
    思路:归并排序

    class Solution {
        vector<int> tmp;
        void merge_sort(vector<int>& nums , int l , int r){
            int mid = l + r >> 1;
            if(l >= r){
                return;
            }
            merge_sort(nums , l , mid);
            merge_sort(nums , mid + 1 , r);
            int k = 0;
            int i = l;
            int j = mid + 1;
            while(i <= mid && j <= r){
                if(nums[i] <= nums[j]){
                    tmp[k++] = nums[i++];
                }else{
                    tmp[k++] = nums[j++];
                }
            }
            while(i <= mid){
                tmp[k++] = nums[i++];
            }
            while(j <= r){
                tmp[k++] = nums[j++];
            }
            for(i = l , j = 0 ; i <= r ; i ++ , j ++){
                nums[i] = tmp[j];
            }
        }
    public:
        vector<int> sortArray(vector<int>& nums) {
            tmp.resize((int)nums.size(), 0);
            merge_sort(nums , 0 , nums.size()-1);
            return nums;
        }
    };
    
  • 相关阅读:
    排名第一、第二的OCR软件
    补码输出
    枚举 与 枚举的应用
    动态构造结构体数组
    c 冒泡排序
    strcpy
    typedef用法
    C 结构体小结
    int 占一个机器字长
    SQL Server创建视图——视图的作用
  • 原文地址:https://www.cnblogs.com/Timesi/p/14965036.html
Copyright © 2011-2022 走看看