import java.util.Scanner;
public class SelectSortandInsertSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int[] numbers = new int[5];
for (int i=0;i<5;i++){
numbers[i]=sc.nextInt();
}
selectSort(numbers);
printArr(numbers);
insertSort(numbers);
printArr(numbers);
}
}
/**
* 选择排序
* 在未排序序列中找到最小元素,存放到序列的起始位置
* 再从剩余未排序的序列中寻找最小元素,放到排序序列的末尾
* 直到所有元素排序完毕
*/
public static void selectSort(int[] numbers){
int size = numbers.length;
int temp = 0;
for (int i=0;i<size;i++){
int k=i;
for (int j=size-1;j>i;j--){
if (numbers[k]>numbers[j]){
k=j;
}
}
temp=numbers[i];
numbers[i]=numbers[k];
numbers[k]= temp;
}
}
/**
* 插入排序
* 从第一个元素开始,改元素默认已排序好
* 取出下一个元素,从已经排序好的序列从后向前扫描
* 如果该元素(已排序好的)大于新元素,则将该元素移到下一位置
* 重复此步骤知道已排序好的元素小雨或者等于新元素的位置
* 将新元素插入到该位置
* 重复执行
*
*/
public static void insertSort(int[] numbers){
int size = numbers.length;
int temp = 0;
int j = 0;
for (int i=0;i<size;i++){
temp = numbers[i];
for (j=i;j>0&&temp<numbers[j-1];j--){
numbers[j]=numbers[j-1];
}
numbers[j]=temp;
}
}
public static void printArr(int[] numbers){
for(int i=0;i<numbers.length;i++){
System.out.print(numbers[i]+",");
}
}
}
选择排序和插入排序
最新推荐文章于 2024-03-22 17:14:14 发布