排序数组
例题 排序数组
题目说明
给你一个整数数组 nums,请你将该数组升序排列。
1 <= nums.length <= 50000-50000 <= nums[i] <= 50000
示例
例1
1 | 输入:nums = [5,2,3,1] |
例2
1 | 输入:nums = [5,1,1,2,0,0] |
笔者理解
此题是一道经典的排序问题。
解法
本次我们用经典八大排序算法中的选择排序来做这个题,选择排序的原理就是每次遍历一遍数组,挑选出相较最小的一个数,然后交换到前面去,前面已经排好序的元素不受后面的影响,所以实际上他需要比较的次数就是1+2+3+…+(n-1),也就是*[n(n+1)]/2,但是他需要交换元素的次数最坏的情况为n-1**,所以选择排序适合元素交换代价较大的问题。
实现
1 | public int[] sortArray(int[] nums) { |
本题是一道经典排序题,感兴趣的朋友都可以去尝试一下,此题还有其他的解法,朋友们可以自己逐一尝试。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 徐年の博客!






