来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sort-an-array
1.题目
给你一个整数数组 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]
class Solution {
public int[] sortArray(int[] nums) {
}
}
2.JAVA代码
快排算法。
class Solution {
public void quickSwapSort(int[] nums,int begin,int end){
if(begin>end)return;
int i=begin;
int j=end;
int k = nums[i];
while(i<j){
// 从右往左遍历
while(i<j && nums[j]>=k)j--;
if(i<j)nums[i]=nums[j];
// 从左往右遍历
while(i<j && nums[i]<k)i++;
if(i<j)nums[j] = nums[i];
}
nums[i] = k;
quickSwapSort(nums,begin,i-1);
quickSwapSort(nums,i+1,end);
}
public int[] sortArray(int[] nums) {
quickSwapSort(nums,0,nums.length-1);
return nums;
}
}
网友评论