在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
2、图示
3、Java实现
package com.leiht.sort;
/**
* 直接选择排序简单实现
* @author Leiht * */ public class SimpleSelectSort { public static void main(String[] args) { int[] numbers = { 56, 45, 78, 67, 99, 13, 34, 49, 55, 34, 12, 77, 1 }; System.out.println("排序之前:"); for (int i = 0; i < numbers.length; i++) { System.out.print(numbers[i] + " "); } //执行排序算法 new SimpleSelectSort().sort(numbers); System.out.println(); System.out.println("排序之后:"); for (int i = 0; i < numbers.length; i++) { System.out.print(numbers[i] + " "); } } /** * 排序方法 * @param numbers */ public void sort(int[] numbers) { //从第0个开始循环数组中第一个元素 for(int i = 0; i < numbers.length; i++) { int min = numbers[i]; int index = i; //从当前元素的下一个元素开始循环,选出从i到最后一个中最小的放到第i个位置 for(int j = i + 1; j < numbers.length; j++) { if(numbers[j] < min) { min = numbers[j]; index = j; } } numbers[index] = numbers[i]; numbers[i] = min; } } }
4、分析
简单选择排序是不稳定的排序