1.冒泡排序:两两比较 2.问题:将{69,24,80,57,13}按从小到大的顺序进行排序. 图解: 3.代码:
//冒泡排序 public class Demo1 { public static void main(String[] args) { //静态初始化一个数组 int[] arr = {69,24,80,57,13}; //冒泡排序 //根据冒泡排序的特点,一共要进行arr.length-1次 for(int i = 0 ; i < arr.length-1 ; i ++){ //每次排序后减少一次比较次数 for(int j = 0 ; j < arr.length-1-i ; j ++){ //将较小数换到前面 if(arr[j] > arr[j+1]){ int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } //遍历输出排序后的数组 for(int i = 0 ; i < arr.length ; i ++){ System.out.print(arr[i]+" "); } } } 结果: 13 24 57 69 801.选择排序:0索引依次和后面的索引进行比较,第一次比较完毕之后,最小值出现在了最小索处.同理,其他索引也是依次进行比较(从小到大排序) 2.问题:将{69,24,80,57,13}按从小到大的顺序进行排序. 图解: 3.代码:
//选择排序 public class Demo2 { public static void main(String[] args) { //静态初始化一个数组 int[] arr = {69,24,80,57,13}; //选择排序 for(int i = 0 ; i < arr.length-1 ; i ++){ //将第i+1个数依次和后面的比较 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 = 0 ; i < arr.length ; i ++){ System.out.print(arr[i]+" "); } } } 结果: 13 24 57 69 80