定义
选择排序(Selection sort)是一种简单直观的排序算法。
工作原理:是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法!
例题
随意定义十个数字的数组 int[] numbers = {12,45,15,16,48,11,91,54,65,19}。
分析:
第一趟: [11] {12,15,16,19,45,48,54,65,91}
第二趟: [11,12] {15,16,19,45,48,54,65,91}
第三趟: [11,12,15] {16,19,45,48,54,65,91}
…..
第(N-1)趟: [11 12 15 16 19 45 48 54 65 91]
/*
* 选择排序算法
* */
public class SelectionSort {
public static void main(String[] args) {
//定义十个数
int[] numbers = {12,45,15,16,48,11,91,54,65,19};
//一共需要比较n-1趟
for (int i = 0; i < numbers.length-1; i++) {
//找最小
int min = numbers[i];
//可能比较n-1次
for (int j = i+1; j < numbers.length; j++) {
if(min > numbers[j]){
min = numbers[j];
}
}
//判断最小的数出现在什么位置
int j;
for (j = i; j < numbers.length; j++) {
if(numbers[j] == min){
break;
}
}
//j的位置最小,交换位置
if(j > i){
int temp = numbers[j];
numbers[j] = numbers[i];
numbers[i] = temp;
}
}
//循环输出
for (int i = 0; i < numbers.length; i++) {
System.out.print(numbers[i]+"\t");
}
}
}