选择排序代码笔记

it2024-10-30  39

/** * @author yeah * @date 2020/10/21 12:29 */ public class Main{ public static void main(String[] args) { Main main = new Main(); // 定义一个随机数数组并赋值打印 int[] numbers = new int[100]; for (int i = 0; i < numbers.length; i++) { numbers[i] = (int) (Math.random()*5000); } for (int i = 0; i < numbers.length; i++) { System.out.print(numbers[i]+"\t"); } // 使用算法 然后打印 main.chooseSort(numbers); System.out.println("\n"+"排序后"); for (int i = 0; i < numbers.length; i++) { System.out.print(numbers[i]+"\t"); } } /** 把一个值(i)赋值给一个临时的值,然后通过比较得到最大值、再将这个值放入到 i 的位置。 * 平均时间复杂度 O(n²) 最坏时间复杂度 O(n²) 最好时间复杂度 O(n²) 内排序、不稳定、空间复杂度 O(1); * @param numbers * @return */ public int[] chooseSort(int[] numbers){ for (int i = 0; i < numbers.length; i++) { // 最小值 赋值临时值; int min = numbers[i]; // 找到最小值 在从第i个开始比较 for (int j = i; j < numbers.length; j++) { if (min>numbers[j]){ int temp = min; min = numbers[j]; numbers[j] = temp; } } numbers[i] = min; } return numbers; } }
最新回复(0)