冒泡排序:
冒泡排序原理:每次比较相邻的数,按升序或者降序进行比较并交换位置,每经过一轮排序,可以获得最大或者最小的数。
public class BubbleSort { public static void sort(int []arrays){ int length = arrays.length; int [] temp =arrays ; for(int i =0 ; i <length-1 ; i++){ for(int j =0; j<length-i-1 ; j++){ if(temp[j]<temp[j+1]){ exchange (j ,j+1 ,temp); } } } print(arrays); } public static void exchange(int i ,int j , int []arrays ){ int temp =arrays[i]; arrays[i] =arrays[j]; arrays[j] =temp ; } public static void print(int [] arr){ for(int i =0 ; i <arr.length ; i++){ System.out.print(arr[i]+" "); } } public static void main(String[] args) { int [] arrays ={32,13,43,54,123,2,43,21}; BubbleSort.sort(arrays); // BubbleSort.print(arrays); } }
插入排序:
public class InsertSort { //升序 public static void insertAscSort(int[] arrs) { int length = arrs.length; for (int out = 1; out < length; out++) { int temp = arrs[out]; int in =out ; while(in >0 && temp<arrs[in-1] ){ arrs[in] =arrs[in-1]; in--; } arrs[in] =temp; } } public static void main(String[] args) { int [] arrs ={23,4,566,45,232,13,5456,34}; InsertSort.insertAscSort(arrs); for(int i : arrs){ System.out.print( i +" "); } } }
选择排序:
public class SelectSort { public static void selectAscSort(int[] arrs) { int length = arrs.length; for (int i = 0; i < length-1; i++) { int temp = i; for (int j = i + 1; j < length; j++) { if (arrs[temp] > arrs[j]) { temp = j; } } int a = arrs[temp] ; arrs[temp] =arrs[i]; arrs[i] =a ; } } public static void main(String[] args) { int [] arrs ={23,4,566,45,232,13,5456,34}; SelectSort.selectAscSort(arrs); for(int i : arrs){ System.out.print( i +" "); } } }