package exception; import java.util.Arrays; public class Sort { public static void main(String[] args) { int[] array = {1,5,2,9,7,8,6,4,0}; // System.out.println(Arrays.toString(bundleSort(array))); // System.out.println(Arrays.toString(insertSort(array))); System.out.println(Arrays.toString(selectSort(array))); } /** * 冒泡排序 * 数组中相邻两个数据进行比较,将较大的往后放 * @param array * @return */ static int[] bundleSort(int[] array) { for (int i = 0; i < array.length; i++) { for (int j = i; j < array.length-1; j++) { int temp = array[j]; if(array[j] > array[j+1]) { array[j] = array[j+1]; array[j+1] = temp; } } } return array; } /** * 插入排序 * 将后一个数和他前面所有的元素进行比较,然后确定他的位置 */ static int[] insertSort(int[] array) { for (int i = 1; i < array.length; i++) { int temp = array[i]; int j = i; for (;j>0; j--) { if(temp<array[j-1]){ array[j] = array[j-1]; array[j-1] = temp; } } } return array; } /** * 选择排序法 * 假定左边为有序区,右边为无序区,每次记录右边最小值的下标,找到右侧最小值,放置在左边。 */ static int[] selectSort(int[] array){ int temp = 0; int k = 0; for (int i = 0; i < array.length; i++) { k = i; for (int j = i; j < array.length; j++) { if(array[k]>array[j]){ k = j; } } if(i!=k){ temp = array[i]; array[i] = array[k]; array[k] = temp; } } return array; } }