首页 > 编程知识 正文

排序的方法,简单选择排序算法代码

时间:2023-05-04 20:25:18 阅读:141686 作者:3845

排序现象随处可见,包括考试顺序、身高顺序、年龄顺序、网络购物价格顺序、用户访问时间顺序等。

自己在打磨leetcode序列的简单算法问题中遇到的主题如下:

这个问题有好几种解法,其中的桶排序是最快、简单、有效的

解法1 (桶排序法publicintheightchecker (int [ ] heights ) /因为值的范围为1=heights[i]=100,所以为1、2、3、99、100,共计101 。几个100 //当将这101个桶中的元素一个个取出时,元素有序地进行for(intheight:heights ) { arr[height]; } int count=0; for(intI=1,j=0; i arr.length; I ) ) arr[i],I是储存在桶中的元素的值,arr[i]是元素的个数//arr[i]--每次取出一个,取空桶while(arr[I]--0) /桶} }返回计数; )在桶排序中,

首先,我不在乎排名的结果。 我们想知道的只是在那个位置是否和最小值一致

在主题中明确了值的范围1=heights[i]=100

这是一定范围内的输入,例如[ 1,1,4,2,1,3 ]

输入有3个1,1个2,1个3和1个4,3个1一定在前面,依次类推

所以,需要的只是计数

解法2(classsolution ) publicintheightchecker (int [ ] heights ) { int[] nums=heights.clone ); Arrays.sort(NUMS ); int count=0; for(intI=0; i heights.length; I(if ) nums[I]!=heights[I]}{count; } }返回计数; }只要比较排序后的数组是否与原始数组有一些不同,就等于要调整的人数。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。