- package com.xbmd.share;
- import java.io.*;
- /**
- * 需求:将一个无序数组按照从小到大的顺序排列
- * 方法:选择排序
- * 实现:选定一个元素,依次和后面的元素进行相比较;如果选定的元素大于后面比较的元素,就交换位置
- * 步骤:
- * ①:第一轮比较完之后,最小值出现在第0角标位置
- * ②:第二轮比较完之后,第二最小值出现在第1角标位置
- * 依次类推...
- */
- public class SelectionSort1 {
- //选择排序
- private static void Select(int[] arr)
- {
- for(int i = 0;i<arr.length;i++)
- {
- for(int j = i+1;j<arr.length;j++)
- {
- if(arr[i] > arr[j])
- {
- int temp = arr[i];
- arr[i]=arr[j];
- arr[j]=temp;
- }
- }
- }
- }
- //使用Java5新特增强for循环,打印数组
- private static void print(int[] arr)
- {
- for (int i : arr) {
- System.out.print(i+" ");
- }
- }
- public static void main(String[] args) throws IOException{
- //定义对象br的母的视为了运行程序时通过键盘输入数据
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- System.out.println("请输入数组的长度(n):");
- //通过键盘输入的一行字符保存在变量n中
- String n = br.readLine();
- //字符型转化为整形
- int length = Integer.parseInt(n);
- //动态创建数组
- int[] arr = new int[length];
- System.out.println("请输入要排序的整数:");
- //用户自己为数组赋值
- for(int i=0;i<arr.length;i++)
- {
- n = br.readLine();
- arr[i]=Integer.parseInt(n);
- }
- System.out.println("排序前数组:");
- print(arr);
- //排序
- Select(arr);
- System.out.println();
- System.out.println("排序后数组");
- print(arr);
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/0501201614361.html
来源: http://www.codesnippet.cn/detail/0501201614361.html