选择排序和插入排序

来源:互联网 发布:编写高性能的JS 编辑:程序博客网 时间:2024/05/22 02:01
import java.util.Scanner;public class SelectSortandInsertSort {public static void main(String[] args) {// TODO Auto-generated method stubScanner 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]+",");}}}