冒泡排序
1 package com.sort.demo; 2 3 public class BubbleSort { 4 public static void sort(int[] arr){ 5 if (arr==null|arr.length<2){ 6 return; 7 } 8 //定义每次排序的结束点,每次排序时都会把最大数放在end位置,所以下一次排序结束点是end-- 9 for (int end=arr.length-1;end>0;end--){ 10 //从index 0 到end进行循环,每次把大的数放到最末尾的end位置 11 for (int i=0;i<end;i++){ 12 if (arr[i]>arr[i+1]){ 13 swap(arr,i,i+1); 14 } 15 } 16 } 17 } 18 public static void swap(int[] arr,int i, int j){ 19 int a=arr[i]; 20 arr[i]=arr[j]; 21 arr[j]=a; 22 } 23 24 public static void main(String[] args) { 25 int[] a=new int[]{4,2,5,7,1,3,9}; 26 BubbleSort.sort(a); 27 for (int i = 0; i < a.length; i++) { 28 System.out.print(a[i]+"\t"); 29 } 30 31 } 32 33 }
时间复杂度为 空间复杂度是O(1)