选择排序
选择排序
一.算法原理
每一次从代排序的数据元素中选出最小(或最大)的一个元素,存放在序列起始位置,直到全部代排数据元素排完.
比如序列[6 4 5 2 1]先选出最小元素1排到起始位,依次从代排序列选出2,4,5,6.
二java简单实现
public static void selectSort(int[] arr) { if (arr == null || arr.length == 0) { return; } int temp,k; for (int i=0; i<arr.length-1; i++) { k = i; for (int j=i+1; j<arr.length; j++) { if (arr[j] > arr[k]) { k = j; } } if (i != k) { temp = arr[i]; arr[i] = arr[k]; arr[k] = temp; } } }
三.时间复杂度
与序列初始排序无关,分析代码可知比较操作为n(n-1)/2(内部for循环部分),而赋值操作与初始排序有关,正序时为0,反序时为3 n(n-1)/2 (3比较操作);
所以,选择排序最差平均都是O(n^2)
四.稳定性
选择排序是一个不稳定的排序算法.
如序列[5,5,3]第一次排序就将3与第一个5进行交换.
相关推荐
troysps 2020-07-19
路漫 2020-06-16
wonner 2020-06-04
wulaxiaohei 2020-06-05
wonner 2020-06-03
清溪算法君老号 2020-06-01
rein0 2020-04-18
Ghero 2020-04-17
wulaxiaohei 2020-04-17
shawsun 2020-04-17
nurvnurv 2020-04-11
ustbfym 2020-04-09
wonner 2020-02-22
baike 2020-02-16
ustbfym 2019-12-17
wuxiaosi0 2019-12-10
Broadview 2019-11-19