Java之数组排序问题总结

    xiaoxiao2025-03-06  38

    Java之数组排序问题总结

    1 选择法排序1.1 思路1.2 程序实现 2 冒泡法排序1.1 思路1.2 程序实现

    1 选择法排序

    1.1 思路

    把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来,比较完后,第一位就是最小的;然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个位置来 比较完后,第二位就是第二小的;依此类推,直到比较完数组的最后一位数。

    1.2 程序实现

    import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入数组的长度:"); int a=sc.nextInt(); System.out.println("请输入数组:"); int[] b=new int[a]; for (int i=0;i<a;i++) { b[i]=sc.nextInt(); }// 已经输入一个数组 for (int j=0;j<a;j++) { for (int k=j+1;k<a;k++) { if (b[j]>b[k]) { int d=b[j]; b[j]=b[k]; b[k]=d; } } }//选择法排序 System.out.println("排序后的数组:"); for (int m:b) { System.out.print(m); System.out.print(" ");} } }

    2 冒泡法排序

    1.1 思路

    从第一位开始,把相邻两位进行比较,如果发现前面的比后面的大,就把大的数据交换在后面,循环比较完毕后,最后一位就是最大的;再来一次,只不过不用比较最后一位。

    1.2 程序实现

    import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入数组的长度:"); int a=sc.nextInt(); System.out.println("请输入数组:"); int[] b=new int[a]; for (int i=0;i<a;i++) { b[i]=sc.nextInt(); }// 已经输入一个数组 //开始对数组进行排序 for (int k=a;k>0;k--) for (int j=0;j<k-1;j++) { if (b[j]>b[j+1]) { int d=b[j]; b[j]=b[j+1]; b[j+1]=d; } }//冒泡法排序 System.out.println("排序后的数组:"); for (int m:b) { System.out.print(m); System.out.print(" ");} } }
    最新回复(0)