Java基础——选择排序、冒泡排序
1.选择排序
原理是直接从待排序数组里选择一个最小(或最大)的数字,每次都拿一个最小数字出来,
顺序放入新数组,直到全部拿完
代码演示:
1 public class Test3 { 2 public static void main(String[] args) { 3 int[] arr = { 3, 9, 81, 8, 5, 10 }; 4 selectSort(arr); 5 print(arr); 6 } 7 8 /* 选择排序:原理是第i个元素和剩余元素的比较次数 */ 9 public static void selectSort(int[] arr) { 10 for (int i = 0; i < arr.length - 1; i++) { 11 for (int j = i + 1; j < arr.length; j++) { 12 if (arr[i] > arr[j]) { 13 int temp = arr[i]; 14 arr[i] = arr[j]; 15 arr[j] = temp; 16 } 17 } 18 } 19 } 20 21 /* 排序后打印函数 */ 22 public static void print(int[] arr) { 23 System.out.print("{"); 24 for (int i = 0; i < arr.length; i++) { 25 if (i < arr.length - 1) 26 System.out.print(arr[i] + ","); 27 else 28 System.out.print(arr[i]); 29 } 30 System.out.print("}"); 31 } 32 }
第10行的for循环控制的是总的比较次数,第11行for循环控制的是第i个数(最小值或最大值)和剩余的比较次数
2.冒泡排序
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,
这样一趟过去后,最大或最小的数字被交换到了最后一位,
然后再从头开始进行两两比较交换,直到倒数第二位时结束
代码示例:
1 public class Test4 { 2 public static void main(String[] args) { 3 int[] arr = { 3, 9, 81, 8, 5, 10 }; 4 bubbleSort(arr); 5 print(arr); 6 } 7 8 public static void bubbleSort(int[] arr) { 9 for (int i = 0; i < arr.length - 1; i++) { 10 for (int j = i; j < arr.length; j++) { 11 if (arr[i] > arr[j]) { 12 int temp = arr[i]; 13 arr[i] = arr[j]; 14 arr[j] = temp; 15 } 16 } 17 } 18 } 19 20 /* 排序后打印函数 */ 21 public static void print(int[] arr) { 22 System.out.print("{"); 23 for (int i = 0; i < arr.length; i++) { 24 if (i < arr.length - 1) 25 System.out.print(arr[i] + ","); 26 else 27 System.out.print(arr[i]); 28 } 29 System.out.print("}"); 30 } 31 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。