912. 排序数组

给你一个整数数组 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]

提示:

1 <= nums.length <= 50000

-50000 <= nums[i] <= 50000

 

解题思路:

这是一个数组排序题,从提示中可以知道,这个数组最多有50000个元素整数,整数范围在-50000至50000,直接使用封装的sort函数是被允许的使用时间复杂度在O(n^2)级别的算法时间开销大会被提示超时,堆排序、快速排序等是好的选择,或者可以用空间换时间的方法也可以通过。

思路一:空间换时间

C/C++题解(点击蓝字即可阅读源码,或前往公众号回复“912”获取)

class Solution {

public:

    vector<int> sortArray(vector<int>& nums) {

Debug结果:

leetcdode 912. 排序数组

Java题解(点击蓝字即可阅读源码,或前往公众号回复“912”获取)

class Solution {

    public int[] sortArray(int[] nums) {

Debug结果:

leetcdode 912. 排序数组

Python题解(点击蓝字即可阅读源码,或前往公众号回复“912”获取)

class Solution(object):

    def sortArray(self, nums):

        """:type nums: List[int] :rtype: List[int]"""

Debug结果:

leetcdode 912. 排序数组leetcdode 912. 排序数组

例题来自力扣网https://leetcode-cn.com/

思路二:堆排序(点击蓝字即可阅读源码,或前往公众号回复“912”获取)

堆排序时间复杂度在O(nlgn),对于数据量较大时,还是比较快的。堆排序相关概念算法可以在排序算法中的堆排序(三)排序算法中的堆排序(二)排序算法中的堆排序(一)

leetcdode 912. 排序数组

更多题解前往公众号免费获取

leetcdode 912. 排序数组

相关文章:

猜你喜欢
  • 2021-08-15
  • 2021-07-01
  • 2021-12-12
  • 2021-08-09
  • 2022-01-14
  • 2021-04-18
相关资源
相似解决方案