0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详谈选择排序算法的定义和过程

如意 来源:百家号 作者:地中海程序员 2020-06-30 17:06 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1 选择排序法的定义

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

2 选择排序法详细过程解析

假定有这样一个数组

int[] nums = new int[]{6, 4, 5, 1, 3, 2};

现在需要将他从大到小排列。

选择排序法代码如下:

详谈选择排序算法的定义和过程

排序详细过程:

[6, 4, 5, 1, 3, 2] 第一次遍历6和2交换位置

[6, 5, 4, 1, 3, 2] 第二次遍历5和4交换位置

[6, 5, 4, 1, 3, 2] 第三次遍历4位置不变

[6, 5, 4, 3, 1, 2] 第四次遍历3和1交换位置

[6, 5, 4, 3, 2, 1] 第五次遍历2和1交换位置

3 选择排序法时间复杂度

数据比较次数:

C = (N-1)+(N-2)+……+2+1=(((N-1)+1)*(N-1)) / 2=(N^2)/2-N/2

数据交换次数:

M = N-1

时间复杂度:

C+M=(N^2)/2-N/2+ N-1=O(N^2)

因此,选择排序的时间复杂度为O(N^2)

4 结语

感谢各位的阅读,如有问题,欢迎大家留言反馈,我会在第一时间修正。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4810

    浏览量

    98621
  • C语言
    +关注

    关注

    183

    文章

    7646

    浏览量

    146208
  • 排序算法
    +关注

    关注

    0

    文章

    53

    浏览量

    10471
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式春招笔试高频算法题(附解题思路)

    。 先明确:嵌入式春招算法题核心考点(必掌握) 嵌入式春招笔试,算法题占比10%-15%,重点考察以下4类题型,覆盖80%的笔试考点,不用盲目刷题: 1.数组操作(排序、查找、去重,必考); 2.
    发表于 03-18 10:08

    MAX16050/MAX16051:电压监测与排序电路的理想选择

    MAX16050/MAX16051:电压监测与排序电路的理想选择 在电子设计领域,对于电压监测和电源排序的需求日益增长,特别是在服务器、工作站、网络系统等复杂设备中。今天,我们就来深入探讨
    的头像 发表于 03-02 09:15 174次阅读

    ADM1066:多功能电源监控与排序芯片的深度解析

    ADM1066:多功能电源监控与排序芯片的深度解析 在电子设备的设计中,电源的监控与排序是确保系统稳定运行的关键环节。ADM1066作为一款功能强大的电源监控与排序芯片,为多电源系统提供了全面
    的头像 发表于 02-28 14:05 223次阅读

    探索LM3880:三轨简单电源排序器的卓越性能与应用

    探索LM3880:三轨简单电源排序器的卓越性能与应用 在电子设计领域,电源管理是一个至关重要的环节。今天,我们将深入探讨德州仪器(TI)推出的LM3880三轨简单电源排序器,它为多电压轨的电源排序
    的头像 发表于 02-26 17:20 648次阅读

    MAX16050/MAX16051:具备反向排序功能的电压监控与排序电路

    MAX16050/MAX16051:具备反向排序功能的电压监控与排序电路 在电子系统设计中,对电源电压的精确监控和有序控制至关重要。Maxim Integrated推出的MAX16050
    的头像 发表于 01-31 17:15 960次阅读

    里可以添加本文要记录的大

    。本文讲解不同算法进行从小到大的升序排列的过程。 提示:以下是本篇文章正文内容,下面案例可供参考 一、冒泡排序 示例:冒泡排序(bubblesort)是一种C语言入门级的简单
    发表于 01-27 22:05

    讲解C语言代码的实现过程

    重点讲解C语言代码的实现过程算法的C语言实现过程具有一般性,通过PID算法的C语言实现,可以以此类推,设计其它算法的C语言实现。 第一步:
    发表于 01-21 07:58

    C语言插入排序算法和代码

    元素都加入排序好数组。   下面,以对 3 2 4 1 进行选择排序说明插入过程,使用j记录元素需要插入的位置。排序目标是使数组从小到大排
    发表于 01-15 06:44

    光纤线芯都是按照什么颜色排序

    多次有朋友留言问到,光纤熔接颜色如何排序,这个在实际应用中还是比较多的,那么今天我们就不讲原理了,直接用图文简单明了讲光纤熔接色谱,大家可以了解下。 一、常规排序 1、4芯的排序:蓝、橙、绿、棕
    的头像 发表于 12-19 11:02 2365次阅读

    C语言的常见算法

    # C语言常见算法 C语言中常用的算法可以分为以下几大类: ## 1. 排序算法 ### 冒泡排序 (Bubble Sort) ```
    发表于 11-24 08:29

    选择加密算法时需考虑哪些因素?

    芯源半导体安全芯片的硬件加密引擎支持多种国际通用加密算法,在实际为物联网设备选择加密算法时,需考虑哪些因素?
    发表于 11-17 07:43

    如何选择适合的抗干扰算法来优化电能质量在线监测装置的测量精度?

    选择适合的抗干扰算法需结合 干扰类型(如电磁噪声、谐波、暂态脉冲)、装置硬件能力(算力、采样率)及应用场景(工业 / 新能源 / 民用) ,通过 “干扰特性分析→算法匹配→效果验证” 的逻辑链,实现
    的头像 发表于 11-06 09:54 957次阅读

    Camellia算法的实现(基于开源蜂鸟E203协处理器)

    项目构想 我们一开始就选择信息安全作为芯来杯比赛方向,并以Camellia算法作为算法原型。借助蜂鸟E203的协处理,能加速Camellia算法的运算,并通过比较软件实现和硬件实现
    发表于 10-30 07:04

    国密系列算法简介及SM4算法原理介绍

    一、 国密系列算法简介 国家商用密码算法(简称国密/商密算法),是由我国国家密码管理局制定并公布的密码算法标准。其分类1所示: 图1 国家商用密码
    发表于 10-24 08:25

    HarmonyOS实战:自定义时间选择

    前言 最近在日常鸿蒙开发过程中,经常会使用一些时间选择器,鸿蒙官方提供的时间选择器满足不了需求,所以自己动手自定义一些经常会使用到的时间选择
    的头像 发表于 06-09 15:51 809次阅读
    HarmonyOS实战:自<b class='flag-5'>定义</b>时间<b class='flag-5'>选择</b>器