选择排序
package Code01;public class Code01_SelectionSort {public static void selectionSort(int[] arr) {if(arr==null||arr.length<2) {return;}for(int i=0;i<arr.length;i++) {int minIndex = i;for(int j=i+1;j<arr.length;j++) {minIndex = arr[minIndex] > arr[j] ? j : minIndex;}swap(arr,i,minIndex);}}public static void swap(int[] arr,int i,int j) {int tmp=arr[j];arr[j]=arr[i];arr[i]=tmp;}public static void printArray(int[] arr) {for (int i=0;i<arr.length;i++) {System.out.print(arr[i]+" ");}System.out.println();}public static void main(String[] args) {int[] arr= {7,5,6,8,9,1,5,2,3,6};printArray(arr);selectionSort(arr);printArray(arr);}
}
冒泡排序
public static void bubbleSort(int[] arr) {if(arr==null||arr.length<2) {return;}for(int end=arr.length-1;end>=0;end--) {for(int second=1;second<=end;second++) {if(arr[second-1]>arr[second]) {swap(arr,second-1,second);}}}}
插入排序
public static void insertSort1(int[] arr) {if(arr==null||arr.length<2) {return;}for(int end=1;end<arr.length;end++) {int newNumIndex=end;while(newNumIndex-1>=0 && arr[newNumIndex-1]>arr[newNumIndex]) {swap(arr,end-1,end);newNumIndex--;} }}public static void insertSort2(int[] arr) {if(arr==null||arr.length<2) {return;}for(int end = 1 ; end < arr.length ; end++) {//pre 新数的前一个位置for(int pre = end-1 ; pre>=0 && arr[pre] > arr[pre+1] ; pre--) {swap(arr , pre , pre+1);} }}