西安網站seo優(yōu)化網站運營指標
順序排序算法原理
從頭開始遍歷未排序數列,遍歷時比較相鄰的兩個元素,前面的大于后面的,則雙方交換位置,一直比較到末尾,這樣最大的元素會出現(xiàn)在末尾,接著再依次從頭開始遍歷剩余未排序的元素,直至所有的元素都排序完成。(其實就是每次遍歷時找出最大的元素,通過不斷的移動位置,將其存入到未排序末尾)
算法圖解
算法實現(xiàn)
/*** 順序排序* @param arr*/public void sort(int arr[]){for(int j = arr.length-1;j>1;j--){for(int i=0;i<j;i++){if(arr[i]>arr[i+1]){int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}}}
倒序排序算法原理
順序是從頭開始遍歷,倒序是從末尾開始遍歷,將最大元素依次存入序列開頭位置
算法圖解
算法實現(xiàn)
/*** 倒序排序* @param arr*/public void revert(int arr[]){for(int j=0;j<arr.length-1;j++){for(int i=arr.length-1;i>j;i--){if(arr[i]>arr[i-1]){int temp = arr[i];arr[i] = arr[i-1];arr[i-1] = temp;}}}}
測試
public static void main(String[] args) {int arr[] = {9, 7, 1991, 27, -1, -10, 0, 2, 65, -100};BubbleSort bubbleSort = new BubbleSort();bubbleSort.sort(arr);for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + "\t");}System.out.println();int arr2[] = {9, 7, 1991, 27, -1, -10, 0, 2, 65, -100};bubbleSort.revert(arr2);for (int i = 0; i < arr2.length; i++) {System.out.print(arr2[i] + "\t");}}