针对数组的三中排序方式:冒泡排序,选择排序,插入排序
AVA在运用数组进行排序时,已经封装好了排序的方法:快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。
普通的算法包括了:
1.冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。
2.选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组。
3.插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。下面我就将他们的实现方法一一详解供大家参考。
1 /** 2 * 数组排序操作 3 * 4 * @author lpp 5 * 6 */ 7 public class Sort { 8 public static void main(String[] args) { 9 int[] arr = { 5,1,4,2,6}; 10 // bubbleSort(arr); 11 // chooseSort(arr); 12 insertSort(arr); 13 } 14 15 // 冒泡排序 16 public static void bubbleSort(int[] arr) { 17 // 外层循环只控制次数,内层循环控制逻辑 18 int temp = 0; 19 for (int i = 0; i < arr.length; i++) { 20 for (int j = 0; j < arr.length - i - 1; j++) { 21 if (arr[j] > arr[j + 1]) { 22 // 相互交换 23 temp = arr[j]; 24 arr[j] = arr[j + 1]; 25 arr[j + 1] = temp; 26 } 27 } 28 } 29 30 // 显示 31 for (int i : arr) { 32 System.out.println(i); 33 } 34 } 35 36 // 选择排序 37 public static void chooseSort(int[] arr) { 38 int minTemp = 0; 39 for (int i = 0; i < arr.length - 1; i++) { 40 for (int j = i + 1; j < arr.length; j++) { 41 if (arr[j] < arr[i]) { 42 // 交换数据 43 minTemp = arr[j]; 44 arr[j] = arr[i]; 45 arr[i] = minTemp; 46 } 47 } 48 } 49 50 // 显示 51 for (int i : arr) { 52 System.out.println(i); 53 } 54 } 55 56 // 插入排序{2,1,4,3} 57 public static void insertSort(int[] arr) { 58 // 被选择的数 59 int select = 0; 60 for (int i = 1; i < arr.length; i++) { 61 //记录要被插入的数值 62 select = arr[i]; 63 int j = 0; 64 for (j = i; j > 0 && arr[j - 1] >= select; j--) { 65 //此处执行的是一个右移操作 66 arr[j] = arr[j - 1]; 67 } 68 // 把小的值向前插入 69 arr[j] = select; 70 } 71 72 // 显示 73 for (int i : arr) { 74 System.out.println(i); 75 } 76 } 77 }
开始在code,我的个人特色。