3. 选择排序—简单选择排序(Simple Selection Sort)
基本思想:
在要排序的一组数中,选出最小(或者最大)的一个数,用第1个位置的数与剩下的n-1个数进行比较,然后,用第2个位置的数与剩下的n-2个数进行比较,以此类推。
简单选择排序的示例:
算法实现:
- import java.util.Random;
-
- public class SimpleSelectionSort {
-
-
- public static int[] ssSort(int[] arr){
-
- for(int i=0; i<arr.length-1; i++){
- for(int j=i+1; j<arr.length; j++){
- if(arr[i] > arr[j]){
- int tmp = arr[i];
- arr[i] = arr[j];
- arr[j] = tmp;
- }
- }
- }
-
- return arr;
-
- }
-
-
- public static void print(int[] arr) {
- for (int i = 0; i < arr.length; i++) {
- System.out.print(arr[i] + " ");
- }
- System.out.println();
- }
-
- public static void main(String[] args) {
-
- System.out.println("任意数组测试:");
- Random r = new Random();
- int[] testArr = new int[20];
- for (int i = 0; i < 20; i++) {
- testArr[i] = r.nextInt(100);
- }
-
- System.out.println("排序前 : ");
- print(testArr);
- System.out.println("排序后 : ");
- print(ssSort(testArr));
-
- }
-
-
- }
输出结果:
- 任意数组测试:
- 排序前 :
- 27 21 8 56 28 19 40 72 80 84 85 31 99 25 11 62 8 67 60 94
- 排序后 :
- 8 8 11 19 21 25 27 28 31 40 56 60 62 67 72 80 84 85 94 99