选择排序(Selection Sort)-Java版

算法简介

  选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。

 

算法原理

  选择排序是一种原址比较排序算法。大致思路是找到数据结构中的最小值并将其放置在第一位,接着找到第二小的值并将其放在第二位,以此类推

  

选择排序

 

代码实例

 1 package sort;
 2 
 3 public class SelectionSortDemo {
 4     /**
 5      * 选择排序
 6      * 时间复杂度O(n^2)
 7      * @param arr 需要排序的数组
 8      */
 9     public static void selectionSort(int[] arr) {
10         for (int i = 0; i < arr.length - 1; i++) {
11             int minIndex = i;
12             int min = arr[i];
13             for (int j = i + 1; j < arr.length; j++) {
14                 if (arr[j] < min) {
15                     min = arr[j];
16                     minIndex = j;
17                 }
18             }
19             if (minIndex != i) {
20                 arr[minIndex] = arr[i];
21                 arr[i] = min;
22             }
23         }
24     }
25 
26     public static void main(String[] args) {
27         int[] arr = {3, 9, -1, 10, 2};
28         selectionSort(arr);
29         for (int i : arr) {
30             System.out.println(i);
31         }
32     }
33 }

 

posted @ 2020-10-14 14:39  -奔跑的蘑菇-  阅读(148)  评论(0)    收藏  举报