博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
选择排序
阅读量:6811 次
发布时间:2019-06-26

本文共 959 字,大约阅读时间需要 3 分钟。

每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

 

通俗的解释

  它的工作原理是每一次从待排序的 中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[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

转载于:https://www.cnblogs.com/ooo0/p/9129629.html

你可能感兴趣的文章
servlet的filter的使用
查看>>
busybox filesystem httpd php-5.5.31 sqlite3 webserver
查看>>
C语言 文件操作5--文件的常用函数
查看>>
遇到的几个难题
查看>>
eclipse插件spket安装
查看>>
Gallery过时替代方案HorizontalScrollView
查看>>
SSRF安全威胁在JAVA代码中的应用
查看>>
【转】Spark性能优化指南——基础篇
查看>>
Android Studio 运行、编译卡死的解决办法
查看>>
Json转Java Bean
查看>>
C# 合并及拆分Word文档
查看>>
Liferay中actionURL能够执行后台方法 ,但是页面不跳转问题解决方案
查看>>
libyuv 编译for ios
查看>>
加密安装Kali Linux条件
查看>>
关于Cocos2d-x中UI按钮的定义
查看>>
IPTables系列:如何配置Ubuntu 14.04中的IPTables防火墙
查看>>
swift:自定义UICollectionViewFlowLayout
查看>>
转】MYSQL性能调优与架构设计之select count(*)的思考
查看>>
MFC Initinstance中DoModal()返回-1
查看>>
抢红包的红包生成算法
查看>>