**
7-3 对整型数据排序 (15 分)
**
分别使用插入排序、选择排序及冒泡排序三种算法对整型数据进行排序(升序)。
输入格式:
第一行输入待排序数组长度;
第二行输入待排序数据(均为整型数据),数据之间使用一个或多个空格分隔;
第三行输入所选择的算法,其中:
插入排序
选择排序
冒泡排序
主方法使用如下代码:
public class Main {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
int size = input.nextInt();
int[] list = new int[size];
for (int i = 0; i < list.length; i++) {
list[i] = input.nextInt();
}
int choice = input.nextInt();
switch(choice){
case 1:insertionSort(list);break;
case 2:selectionSort(list);break;
case 3:bubbleSort(list);break;
default: break;
}
}
//Insert your code
}
输出格式:
在一行中输出排序后的数据,数据之间采用一个空格分隔。(注意最后一个数据之后存在一个空格)
输入样例1:
8
71 56 24 100 152 120 36 0
1
输出样例1:
0 24 36 56 71 100 120 152
输入样例2:
8
71 56 24 100 152 120 36
2
输出样例2:
0 24 36 56 71 100 120 152
输入样例3:
8
71 56 24 100 152 120 36 0
3
输出样例3:
0 24 36 56 71 100 120 152
import java.util.Scanner;
//主类
public class Main {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
int size = input.nextInt();
int[] list = new int[size];
for (int i = 0; i < list.length; i++) {
list[i] = input.nextInt();
}
int choice = input.nextInt();
switch(choice){
case 1:insertionSort(list);break;
case 2:selectionSort(list);break;
case 3:bubbleSort(list);break;
default: break;
}
}
//插入排序
public static void insertionSort(int[] list){
int i,j,temp;
for(i=0;i<list.length;i++){
j=i;
while(j!=0&&list[j]<list[j-1]){
temp=list[j];
list[j]=list[j-1];
list[j-1]=temp;
j--;
}
}
for(i=0;i<list.length;i++){//循环输出
System.out.print(list[i]+" ");
}
}
//选择排序
public static void selectionSort(int[] list){
int i,j,temp,min;
for(i=0;i<list.length-1;i++){
min=i;
for(j=i;j<list.length;j++){//循环找出最小数的位置
if(list[j]<list[min]){
min=j;
}
}
//最小数与原数组该位置的数进行交换
temp=list[min];
list[min]=list[i];
list[i]=temp;
}
for(i=0;i<list.length;i++){//循环输出
System.out.print(list[i]+" ");
}
}
//冒泡排序
public static void bubbleSort(int[] list){
int i,j,temp;
for(i=0;i< list.length;i++)//循环排列n-1次
{
for(j=0;j< list.length-1-i;j++)//循环比较大小n-i-1次
{
if(list[j]>list[j+1])//比较大小
{
temp=list[j];
list[j]=list[j+1];
list[j+1]=temp;
}
}
}
for(i=0;i<list.length;i++){//循环输出
System.out.print(list[i]+" ");
}
}
}