public static void swep(Integer[] data, int i, int j){ int temp = data[i]; data[i] = data[j]; data[j] = temp; }
1.冒泡排序
Integer[] data = {6, 3, 1, 5, 7, 9, 0, 2, 8}; for (int i = 0; i < data.length ; i++ ) { for (int j = 1; j < data.length-i; j++ ) { if(data[j-1] > data[j]){ swep(data, j-1, j); } } }
2.选择排序(先找出最小的index,跟第一个交换, 再从第2个后找出最小,跟第2个交换..依次类推)
Integer[] data = {6, 3, 1, 5, 7, 9, 0, 2, 8}; for (int i = 0; i < data.length ; i++ ) { int min = i; for (int j = i+1; j < data.length; j++ ) { if(data[min] > data[j]){ min = j; } } swep(data, min, i); }
3.直接插入排序(首先第一个元素肯定是有序的,然后让第2个跟第一个比较后形成有序的2个元素,然后让第3个跟前面有序的2个元素比较形成有序的3个元素..依次类推)
public static void insertionSort(){ int o = 0; for (int i = 1; i < data.length; i++) { for (int j = i; j > 0; j--) { if(data[j-1] > data[j]){ swep(data, j-1, j); ++o; } } } System.out.println("复杂度为:"+o); }