经典排序算法-冒泡与选择
1 冒泡排序的思想类似气泡上升,数组前后元素两两比较,如果前面的元素比后面的大就交换位置,每趟排序都可以确定最大值的位置
2 选择排序思想类似打擂台,每趟比较都把最小的值排在数组最前面,每趟比较都可以确定最小值的位置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | public class SortTest { public static void main(String[] args) { //选择排序 int arr[] = { 2 , 9 , 10 , 5 , 4 , 8 , 7 , 1 , 3 , 6 }; choose(arr); System.out.println(); //冒泡排序 int arr2[] = { 2 , 9 , 10 , 5 , 4 , 8 , 7 , 1 , 3 , 6 }; bubble(arr2); } /** * 选择排序 * @param arr */ public static void choose( int arr[]){ 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[j]; arr[j] = arr[i]; arr[i] = temp; } } } for ( int a:arr){ System.out.print(a+ " " ); } } /** * 冒泡排序 */ public static void bubble( int arr[]){ for ( int i= 0 ;i<arr.length;i++){ for ( int j= 0 ;j<arr.length-i- 1 ;j++){ //前后比较,大的值放在后面 if (arr[j]>arr[j+ 1 ]){ int temp = arr[j]; arr[j] = arr[j+ 1 ]; arr[j+ 1 ] = temp; } } } for ( int a:arr){ System.out.print(a+ " " ); } } }<br><br>程序运行结果为:<br> 1 2 3 4 5 6 7 8 9 10 <br> 1 2 3 4 5 6 7 8 9 10 |