【Leetcode题目-03】数组排序算法题目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【Leetcode题目-03】数组排序算法题目相关的知识,希望对你有一定的参考价值。
参考技术A 剑指 Offer 45-把数组排成最小的数0283-移动零
0215-数组中的第K个最大元素
0075-颜色分类
0912-排序数组
0506-相对名次
0088-合并两个有序数组
剑指 Offer 51-数组中的逆序对【这题还不会】
0315-计算右侧小于当前元素的个数【这题还不会】
0169-多数元素
剑指 Offer 40-最小的k个数
1122-数组的相对排序
0164-最大间距
0561-数组拆分I
0217-存在重复元素
0136-只出现一次的数字
0056-合并区间
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;
}
}
总结
熟悉快速排序的方法。
以上是关于【Leetcode题目-03】数组排序算法题目的主要内容,如果未能解决你的问题,请参考以下文章
前端与算法 leetcode 26. 删除排序数组中的重复项
算法入门 02二分查找(简单 - 第四题)LeetCode 167
⭐算法入门⭐《二分枚举》简单06 —— LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置
⭐算法入门⭐《队列 - 单调队列》中等03 —— LeetCode 918. 环形子数组的最大和