冒泡排序代码笔记

it2024-08-12  48

/** * @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"); } System.out.println("\n"+"排序后"); main.bubbleSort(numbers); for (int i = 0; i < numbers.length; i++) { System.out.print(numbers[i]+"\t"); } } /** * 冒泡排序 平均时间复杂度 O(n²) 最坏时间复杂度 O(n²) 最好时间复杂度 O(n) * 属于内排序,稳定,空间复杂度 O(1) * @param numbers * @return */ public int[] bubbleSort(int[] numbers){ // 外层排序控制最大交换次数 比如2个数最大交换一次,n个数最大交换n-1次 for (int i = 0; i < numbers.length-1; i++) { // 内层循环负责交换 for (int j = 0; j < numbers.length -i -1; j++) { if(numbers[j]>numbers[j+1]){ int temp = numbers[j]; numbers[j] = numbers[j+1]; numbers[j+1] = temp; } } } return numbers; } }
最新回复(0)