当前位置: 首页 > news >正文

选择排序(C语言版)

选择排序是一种简单直观的排序算法

算法实现

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

重复第二步,直到所有元素均排序完毕。

代码实现 

void Swap(int* a, int* b)
{int tmp = *a;*a = *b;*b = tmp;
}void select_sort(int* arr, int n)
{for (int i = 0; i < n - 1; ++i){int min_index = i;for (int j = i + 1; j < n; ++j){if (arr[j] < arr[min_index]){min_index = j;}}Swap(&arr[i], &arr[min_index]);}
}

性能分析

  • 时间复杂度:O(N^2)
  • 无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。
  • 空间复杂度:O(1)

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【AI应用探讨】—逻辑回归应用场景
  • Java内存区域与内存溢出异常(补充)
  • 01 企业网站架构部署与优化之Apache配置与应用
  • Apache Hadoop文件上传、下载、分布式计算案例初体验
  • 【深度学习(42)】通过vscode使用anaconda的python环境
  • MMCV教程及安装问题解决
  • 六、golang基础之面向对象特征
  • element的下拉框封装
  • Nacos服务注册总流程(源码分析)
  • Elasticsearch:结合稀疏、密集和地理字段
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • Java中的锁都有什么
  • WPF中逻辑树和视觉树
  • SQL 游标
  • CentOS7 安装 git 命令
  • [笔记] php常见简单功能及函数
  • 【mysql】环境安装、服务启动、密码设置
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • ES6简单总结(搭配简单的讲解和小案例)
  • httpie使用详解
  • iOS 颜色设置看我就够了
  • Java 内存分配及垃圾回收机制初探
  • JWT究竟是什么呢?
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • spark本地环境的搭建到运行第一个spark程序
  • vue-cli在webpack的配置文件探究
  • Yii源码解读-服务定位器(Service Locator)
  • 初识 beanstalkd
  • 关于List、List?、ListObject的区别
  • 前端面试题总结
  • 前端之Sass/Scss实战笔记
  • 思维导图—你不知道的JavaScript中卷
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 中文输入法与React文本输入框的问题与解决方案
  • puppet连载22:define用法
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • $.ajax()
  • $L^p$ 调和函数恒为零
  • (06)Hive——正则表达式
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (java)关于Thread的挂起和恢复
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (实战篇)如何缓存数据
  • (转)大道至简,职场上做人做事做管理
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .gitattributes 文件
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET 发展历程
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表