The selection sort algorithm sorts an array by repeatedly finding the minimum element (considering ascending order) from unsorted part and putting it at the beginning. The algorithm maintains two subarrays in a given array.
前言 选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。
选择排序 选择排序思想:
选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从arr[0]到arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]到arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]到arr[n-1]中选取最小值,与arr[2]交换,…,第i次从arr[i-1]到arr[n-1]中选取最小值,与arr[i-1]交换,…,第n-1次从arr[n-2]到arr[n-1]中选取最小值,与arr[n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列。
选择排序解析:
选择排序动图:
选择排序代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 public class SelectionSort { public static void main (String[] args) { int [] arr = new int [80000 ]; for (int i = 0 ; i < 80000 ; i++) { arr[i] = (int ) (Math.random() * 80000 ); } long start = System.currentTimeMillis(); selectionSort(arr); long end = System.currentTimeMillis(); System.out.println("80000个数字排序所用时间:" + (end - start)); } public static void selectionSort (int [] arr) { for (int i = 0 ; i < arr.length - 1 ; i++) { int min = arr[i]; int minIndex = i; for (int j = i + 1 ; j < arr.length; j++) { if (min > arr[j]) { min = arr[j]; minIndex = j; } } if (minIndex != i) { arr[minIndex] = arr[i]; arr[i] = min; } } } }
延伸 选择排序 图解 选择排序 选择排序算法 Selection Sort 韩顺平数据结构和算法
<
Design Patterns(十一) Proxy
Algorithm Bubble Sort
>