一、思路
1. 选择法排序
1. 把第一位和其他所有位比较,只要比第一位小的,就换到第一个位置来,比较数组长度-1次后,第一位就是最小的
2. 再从第二位和剩余的其他所有位进行比较,只要比第二位小,就换到第二个位置来,比较完后,第二位就是第二小的
3. 以此类推
2. 冒泡法排序
1. 从第一位开始,把相邻两位进行比较,如果前面的比后面的大,就把大的数据交换在后面,比较数组长度-1次后,最后一位就是最大的
2. 重复步骤1,但不用比较最后一位,相当于对除去最后一位的其它数的数组做冒泡排序
3. 以此类推


二、程序
public class Test { public static void main(String[] args) { int[] a = new int[]{18,85,46,62,9,37}; //排序前先把内容打印出来 for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(" "); //换行 /* 选择法排序 * 1. 把第一位和其他所有位比较,只要比第一位小的,就换到第一个位置来,比较数组长度-1次后,第一位就是最小的 2. 再从第二位和剩余的其他所有位进行比较,只要比第二位小,就换到第二个位置来,比较完后,第二位就是第二小的 3. 以此类推 */ //最后一位不需要和其它位比较,所以外部循环到数组长度-1 for (int j = 0; j < a.length-1; j++) { for (int i = j+1; i < a.length; i++) { if(a[i] < a[j]) { int temp = a[j]; a[j] = a[i]; a[i] = temp; } } } for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } System.out.println(" "); //换行 /*冒泡法排序 * 1. 从第一位开始,把相邻两位进行比较,如果前面的比后面的大,就把大的数据交换在后面,比较数组长度-1次后,最后一位就是最大的 2. 重复步骤1,但不用比较最后一位,相当于对除去最后一位的其它数的数组做冒泡排序 3. 以此类推 */ for (int j = 0; j < a.length; j++) { //外部第一次循环,内部循环需比较数组长度-1次,将最大位排到最后一位,外部第二次循环,内部循环需比较(原数组长度-1)-1次 for (int i = 0; i < a.length-j-1; i++) { if(a[i] < a[i+1]) { int temp = a[i+1]; a[i+1] = a[i]; a[i] = temp; } } } for (int i = 0; i < a.length; i++) { System.out.print(a[i] + " "); } } }
讯享网
三、结果

四、参考文章
1. https://how2j.cn/k/array/array-sort/282.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/124312.html