[javaSE] 数组(排序-选择排序)
2023-02-18 15:47:03 时间
两层嵌套循环,外层循环控制次数,内层循环进行比较
for(int x=0;x<arr.length;x++){ for(int y=0;y<arr.length;y++){ if(arr[x]>arr[y]){ } } }
此时的代码有问题,内层的循环多比较了已经排好序的部分,都在最前面,需要去掉
for(int x=0;x<arr.length;x++){ for(int y=x+1;y<arr.length;y++){ if(arr[x]>arr[y]){ } } }
此时的代码有问题,外层的循环最后一个的元素没有必要去比较,需要去掉
for(int x=0;x<arr.length-1;x++){ for(int y=x+1;y<arr.length;y++){ if(arr[x]>arr[y]){ } } }
判断完后,两个变量交换位置,利用第三方变量
for(int x=0;x<arr.length-1;x++){ for(int y=x+1;y<arr.length;y++){ if(arr[x]>arr[y]){ int temp=arr[x]; arr[x]=arr[y]; arr[y]=temp; } } }
java版:
public class ArrayDemo { /** * @param args */ public static void main(String[] args) { int[] arr=new int[]{2,5,4,1}; int[] newArr=sortArr(arr); for(int x:newArr){ System.out.print(x); } } /** * 选择排序(正序) * @param arr * @return */ public static int[] sortArr(int[] arr){ for(int x=0;x<arr.length-1;x++){ for(int y=x+1;y<arr.length;y++){ if(arr[x]>arr[y]){ int temp=arr[x]; arr[x]=arr[y]; arr[y]=temp; } } } return arr; } }
PHP版:
<?php class ArrayDemo{ public static function main(){ $arr=array(2,5,4,1); print_r(ArrayDemo::sortArr($arr));//输出 Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 5 ) } /** * 选择排序(正序) * @param arr * @return */ public static function sortArr($arr){ for($x=0;$x<count($arr)-1;$x++){ for($y=$x+1;$y<count($arr);$y++){ if($arr[$x]>$arr[$y]){ $temp=$arr[$x]; $arr[$x]=$arr[$y]; $arr[$y]=$temp; } } } return $arr; } } ArrayDemo::main();
相关文章
- 区块链治理和链下模型的某些实用性
- 【类型挑战】Parameters,难度⭐️
- 【类型挑战】获取函数返回类型,难度⭐️⭐️
- 【类型挑战】实现 Omit,难度⭐️⭐️
- 【类型挑战】Readonly 2,难度⭐️⭐️
- 再谈HashMap:使用map优化代码,你得学我这样做
- 【类型挑战】深度 Readonly,难度⭐️⭐️
- 【类型挑战】元组转联合,难度⭐️⭐️
- 【类型挑战】最后一个元素,难度⭐️⭐️
- 国企人力资源数字化转型系列之如何开展人力资源数据治理?
- 【类型挑战】出栈,难度⭐️⭐️
- 【类型挑战】Trim Left,难度⭐️⭐️
- 建立索引,我有话要说,这样理解更快更准
- 【类型挑战】Trim Right,难度⭐️⭐️
- 【类型挑战】Trim,难度⭐️⭐️
- 完美!腾讯技术官发布Java零基础就业宝典,不用再怀疑人生了
- Alibaba内部出品“Java初学者宝典”,让你就业没压力
- Cockos Reaper for mac(专业数字音频制作软件)v6.73激活版
- 【分享】前端线上紧急排查工具
- 技术分享必备de终端录制神器