您的位置:首页 > 编程语言 > Java开发

java排序算法(二)选择排序

2017-03-29 11:15 239 查看
选择排序是记录元素所在的位置(索引),然后进行交换,即把最大的数或者最小的数和最后一位或者第一位进行交换,保证了他们的最小最大位置,然后依次进行第二位,第三位。。。。直至所有的数都保证在正确的顺序位置。

package cn.sortAlgorithm;

import java.util.Scanner;

public class SelectSort {

public static void main(String[] args) {
System.out.print("请输入数字,以空格隔开:\n");
Scanner in = new Scanner(System.in);
String[] s = in.nextLine().split("\\s+");
int[] arr = new int[s.length];
for (int i=0; i<s.length; i++) {
arr[i] = Integer.parseInt(s[i]);
}
//		int[] arr = {1,2,4,3,0};
System.out.println("排序前:");
display(arr);
sort(arr);
}
public static void sort(int[] arr){      // 排序
int index=0,tmp;
int min;
for(int i=0; i<arr.length-1; i++){
min = arr[i]; // 从当前位置开始与后面的数比较,记录最小的数
index = i;  // 记录当前的索引
for(int j=i+1; j<arr.length; j++){
if(min>arr[j]){
min = arr[j];  // 记录最小的数,并记录索引
index = j;
}
}
if(index != i){     // 把最小的数与当前开始比较的位置做交换
tmp = arr[i];
arr[i] = arr[index];
arr[index] = tmp;
}
}
System.out.println("排序后:");
display(arr);
}
public static void display(int[] arr){  // 显示数组
for(int b:arr){
System.out.print(b+" ");
}
System.out.println();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: