选择法排序和冒泡法排序

选择法排序和冒泡法排序一 思路 1 选择法排序 1 把第一位和其他所有位比较 只要比第一位小的 就换到第一个位置来 比较数组长度 1 次后 第一位就是最小的 2 再从第二位和剩余的其他所有位进行比较 只要比第二位小 就换到第二个位置来 比较完后 第二位就是第二小的 3 以此类推

大家好,我是讯享网,很高兴认识大家。

一、思路

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

小讯
上一篇 2025-04-06 07:51
下一篇 2025-04-06 13:39

相关推荐

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