912. 排序数组
Posted 不吐西瓜籽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了912. 排序数组相关的知识,希望对你有一定的参考价值。
算法记录
LeetCode 题目:
给你一个整数数组 nums,请你将该数组升序排列。
说明
一、题目
输入:nums = [5,2,3,1]
输出:[1,2,3,5]
二、分析
- 数组的排序方法有很多,我们这里采用单边递归树进行空间优化、基值优化的快速排序作为排序的方式。
class Solution {
public void quickSort(int[] nums, int start, int end) {
while(end > start) {
int l = start, r = end;
int par = nums[(l + r) / 2];
do {
while(nums[l] < par) l++;
while(nums[r] > par) r--;
if(l <= r) {
int temp = nums[l];
nums[l] = nums[r];
nums[r] = temp;
l++;
r--;
}
} while(l <= r);
quickSort(nums, l, end);
end = r;
}
}
public int[] sortArray(int[] nums) {
quickSort(nums, 0, nums.length - 1);
return nums;
}
}
总结
熟悉快速排序的方法。
以上是关于912. 排序数组的主要内容,如果未能解决你的问题,请参考以下文章