当前位置: 首页 > 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)

 

http://www.lryc.cn/news/396229.html

相关文章:

  • 基于CentOS Stream 9平台搭建FRP内网穿透
  • Redis管理禁用命令
  • RFID智能锁控系统在物流安全运输中的应用与效益分析
  • WPF设置全局样式
  • 【福利】代码公开!咸鱼之王自动答题脚本
  • ChatGPT-4o大语言模型优化、本地私有化部署、从0-1搭建、智能体构建技术
  • 使用clion刷leetcode
  • 图解HTTP(5、与 HTTP 协作的 Web 服务器 6、HTTP 首部)
  • JS之防抖和节流
  • Open3D 点云PCA算法配准(粗配准)
  • Transformer中的编码器和解码器结构有什么不同?
  • 【深度学习】第5章——卷积神经网络(CNN)
  • fluwx插件实现微信支付
  • k8s核心操作_Deployment的扩缩容能力_Deployment自愈和故障转移能力---分布式云原生部署架构搭建022
  • P8306 【模板】字典树
  • 面试官:讲一下如何终止一个 Promise 继续执行
  • linux之常见的coredump原因都有哪些
  • 低资源低成本评估大型语言模型(LLMs)
  • 什么是RPC?有哪些RPC框架?
  • HTTP有哪些请求方式?
  • 接口测试课程结构
  • leetcode--从中序与后序遍历序列构造二叉树
  • 西瓜杯CTF(1)
  • Kafka 典型问题与排查以及相关优化
  • C# 策略模式(Strategy Pattern)
  • 【初阶数据结构】1.算法复杂度
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • 科技创新引领水利行业升级:深入分析智慧水利解决方案的核心价值,展望其在未来水资源管理中的重要地位与作用
  • ExcelVBA运用Excel的【条件格式】(三)
  • coco数据集格式计算mAP的python脚本