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(" ");}
}
}