冒泡,選擇和插入排序比較

/** * 冒泡排序,兩層嵌套循環,內層局部比較後,找出最大或者最小數據並交換數據,使其局部有序,外層用於比較剩餘元素,相較於選擇排序,選擇排序相當於是冒泡的一個優化版本(減少了交換次數) */ public static void buble_sort() { int [] arr = {1,12,2,3,1,25,3,87,45,32,90,0,1,12,2,3,1,25,3,87,45,32,90}; for(int i=0;i < arr.length; i++) { for (int j=i+1; j < arr.length; j++) { if(arr[i] > arr[j]) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } for(int i : arr) { System.out.println(i); } } /** * 插入排序,核心思想是左邊的數據已經假設全部有序,取出右邊的數據,經過比較後插入到左邊。 */ public static void insert_sort() { int [] arr = {1,12,2,3,1,25,3,87,45,32,90,0,1,12,2,3,1,25,3,87,45,32,90}; for(int i=0; i< arr.length;i++) { for(int j=i; j>0 && arr[j] < arr[j-1]; j--) { int temp = arr[j]; arr[j] = arr[j-1]; arr[j-1] = temp; } } for (int i : arr) { System.out.println(i); } } /** * 選擇排序,兩層嵌套循環,內層根據索引排序得到最大或最小值,外層交換。 */ public static void select_sort() { int [] arr = {12,2,3,1,25,3,87,45,32,90,0,1,12,2,3,1,205,3,87,45,32,90,1,12,2,3,1,25,3,87,45,32,90,0,1,12,2,3,1,25,3,87,45,32,90}; for(int i=0; i<arr.length; i++) { int min = i; for(int j=i+1; j<arr.length; j++) { if(arr[min] > arr[j]) { min = j; } } int temp = arr[min]; arr[min] = arr[i]; arr[i] = temp; } for (int i : arr) { System.out.println(i); } }`
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章