简单选择排序

server/2025/3/28 3:11:11/

简单选择排序,很明显属于选择排序。

选择排序:每一趟在待排序元素中选取关键字最小(或最大)的元素加入有序子序列。

n个元素的简单选择排序需要n-1趟处理。

代码:

void SelectSort(int A[],int n){int min_idx;//记录最小元素的位置int temp;//n个元素需要n-1趟处理,单独最后一个元素组成的子序列无需再处理//i指向当前待排序子序列的第一个元素for(int i = 0;i< n-1;i++){min_idx = i;for(int j = i+1;j < n;j++){  //在A[i...n-1]中选择最小的元素if(A[j] < A[min_idx]) min_idx = j;}if(min_idx != i){temp = A[min_idx];A[min_idx] = A[i];A[i] = temp;}}
}

无论正序、逆序、还是乱序,一定需要n-1趟处理。

总共需要对比关键字(n-1)+(n-2)+...+1=n(n-1)/2次。

元素交换次数 < n - 1。

简单选择排序性质
时间复杂度无论什么情况都是O(n^2)
空间复杂度O(1)
稳定性不稳定
适用性顺序表、链表都可以


http://www.ppmy.cn/server/179167.html

相关文章

进程通信(进程池的模拟实现) read write函数复习 Linux ─── 第23课

目录 write和read函数补充: 进程池(process pool) 第一步: 创建并初始化processpool 第二步:主进程对子进程派发任务 补充: 第三步: 子进程执行完退出进程池 回收子进程 Channel.hpp ProcessPool.hpp Task.hpp main.cc makefile write和read函数补充: const char …

LeetCode热题100精讲——Top4:移动零【双指针】

你好&#xff0c;我是安然无虞。 文章目录 题目背景移动零C解法Python解法 题目背景 如果大家对于 双指针 的概念并不熟悉, 可以先看我之前为此专门写的算法详解: 蓝桥杯算法竞赛系列第七章——六道力扣经典带你刷爆双指针 移动零 题目链接&#xff1a;移动零 解题思路&…

笔记本+移动端维修全套教程

今天分享的是笔记本移动端维修全套教程&#xff08;免费视频资料大全&#xff09; 当自己手机或者电脑坏了&#xff0c;很多人都会想着去维修店铺修&#xff0c;但价格不透明&#xff0c;容易被坑&#xff0c;当自己了解一些之后&#xff0c;即使不会修&#xff0c;也可以对手…

计算机体系结构及存储系统入门

1.2 计算机体系结构 计算机体系结构(computer architecture)是指计算机的概念性结构、功能和性能特性&#xff0c;它从一个更高的层次对计算机的结构和特征等宏观特性进行研究。计算机体系结构分类如下所述: 从计算机体系架构的宏观视角出发&#xff0c;依据处理机数量&#x…

6.3 模拟专题:LeetCode 6. Z 字形变换

1. 题目链接 LeetCode 6. Zigzag Conversion 2. 题目描述 将一个给定字符串 s 按照指定的行数 numRows 进行 Z 字形排列后&#xff0c;逐行读取并返回新的字符串。 示例&#xff1a; 输入&#xff1a;s "PAYPALISHIRING", numRows 3 → 输出&#xff1a;"P…

蓝之洋科技以AI智能制造引领变革,推动移动电源产业迈向高端智能化!

在全球智能制造加速发展的背景下&#xff0c;深圳市蓝之洋科技有限公司凭借十余年的行业深耕、先进的生产体系、严格的质量标准及持续的技术创新&#xff0c;已成为移动电源领域的领先制造商。作为众多国际品牌的长期合作伙伴&#xff0c;蓝之洋科技不仅在生产制造方面树立了行…

雕马快租:直播设备租赁新趋势,低成本重构传统营销模式的破局之道

引言&#xff1a;直播电商浪潮下的设备成本困局 随着直播电商渗透率突破60%&#xff08;艾媒咨询2025年数据&#xff09;&#xff0c;企业与个人主播对直播设备的需求呈指数级增长。然而&#xff0c;一套专业直播设备的采购成本动辄数万元&#xff0c;叠加设备迭代周期缩短至1…

软件开发过程中常用的调试工具(gdb)

gdb 因为我们公司其中脚本中有rk的gdb调试工具脚本&#xff0c;内部只需要将其打开后进行编译即可&#xff1a; 需要将编译出来的cvr_app 第一种&#xff1a;使用gdb将app给跑起来&#xff1a;gdb cvr_app 然后在出现问题时&#xff1a; 输入bt&#xff0c;可以打印出当前…