算法:选择排序(Java)
2022/2/28 1:22:39
本文主要是介绍算法:选择排序(Java),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
思路展示:
<iframe allowfullscreen="true" data-mediaembed="bilibili" id="YBs2yKcE-1645973884723" src="https://player.bilibili.com/player.html?aid=417619630"></iframe>选择排序
(本视频来自网络,仅供个人观赏学习交流,请勿转载或商用。)
Java代码实现:
import java.util.Arrays; public class selectSort { //主方法 public static void main(String[] args){ //对数器检验 int testTime = 500000;//比对次数 int maxSize = 100; int maxValue = 100; boolean succeed = true; for(int i = 0; i < testTime; i++){ int[] arr1 = generateRandomArray(maxSize, maxValue);//随机生成一个数组,长度随机,元素随机 int[] arr2 = copyArray(arr1);//复制上述数组 selectSort(arr1);//选择排序 comparator(arr2);//此处对数器使用的是Arrays.sort(),是一定正确的,这样我们就可以放心比对了 if(!isEqual(arr1,arr2)){ succeed = false; break; } } System.out.println(succeed ? "Nice~" : "Fucking fucked!"); } //*************************************************************************************** //选择排序 public static void selectSort(int[] nums){ //特殊处理 if (nums.length <= 1){ return; } //排序 for(int i = 0; i < nums.length-1; i++){ int min = Integer.MAX_VALUE; for(int j = i ; j < nums.length; j++){ if(nums[j] < min){ min = nums[j];//更新最小值 //交换数据 int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } } } } //*************************************************************************************** //生成随机数组 public static int[] generateRandomArray(int maxSize, int maxValue){ //Math.random() --> [0,1)所有的小数,等概率返回一个 //Math.random() * N --> [0,N)所有的小数,等概率返回一个 //(int)(Math.randow() * N) --> [0,N)所有的整数,等概率返回一个 int[] arr = new int[(int) (Math.random() * (maxSize + 1))];//长度随机 for(int i = 0; i < arr.length; i++){ arr[i] = (int)(Math.random() * (maxValue + 1)) - (int)(Math.random() * maxValue);//两个随机值相见,保证该值也是随机的 } return arr; } //复制数组 public static int[] copyArray(int[] arr){ if(arr == null){ return null; } return arr; } //比对 public static boolean isEqual(int[] arr1, int[] arr2) { if (arr1 == null && arr2 != null || (arr1 != null && arr2 == null)) { return false; } if (arr1 == null && arr2 == null) { return true; } for (int i = 0; i < arr1.length; i++) { if (arr1[i] != arr2[i]) { return false; } } return true; } //对数器 public static void comparator(int[] nums){ Arrays.sort(nums); } }
这篇关于算法:选择排序(Java)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?