选择排序
Posted 草木物语
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选择排序相关的知识,希望对你有一定的参考价值。
每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
通俗的解释
它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
时间复杂度
比较次数O(n^2)
示例:
public static void selectSort(Integer[] a) { int minIndex = 0; int temp = 0; for (int i = 0; i < a.length - 1; i++) { minIndex = i;//无序区的最小数据数组下标 for (int j = i + 1; j < a.length; j++) { //在无序区中找到最小数据并保存其数组下标 if (a[j] < a[minIndex]) { minIndex = j; } } //将最小元素放到本次循环的前端 temp = a[i]; a[i] = a[minIndex]; a[minIndex] = temp; } } public static void main(String[] args) { Integer[] myList = { 5, 3, 6, 2, 10 }; selectSort(myList); //{2, 3, 5, 6, 10} for (Integer integer : myList) { System.out.println(integer); } }
参考:https://baike.baidu.com/item/%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F
以上是关于选择排序的主要内容,如果未能解决你的问题,请参考以下文章
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段