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

选择排序的原理及示例

写算法的步骤,先用自然语言描述算法,第一步要做什么、第三步要做什么…,最后再用编程语言表达出来。

  1. 假设第一个元素是最小的,然后与第二个元素比较,找到最小的,继续与第三个元素比较,找到最小的,至到与最后一个元素比较,找到最小的,到此,第一轮里就找到了最小的元素。然后将这个最小的元素与第一位的元素互换,这样,最小的元素就到了最左边。
  2. 假设第二个元素是最小的,然后与第三个元素比较,找出第二小的,继续与第四个元素比较,找出第二小的,一直比较到最后一个元素,最找到除第一元素外,剩下的元素中最小的,将这个元素与第二个元素互换位置,这样第二小的元素就排到了最左边,排在最小的元素后面
  3. 对剩下的元素重复上述操作
  4. 排序完成
#include <stdio.h>void sort(int *arr,int size){for(int i = 0;i < size;i++){int minIndex = i;for(int j = i+1;j < size;j++){if(arr[j]< arr[minIndex]){minIndex = j;}}if(minIndex != i) {int temp = arr[i];arr[i] = arr[minIndex];arr[minIndex]=temp;}}
}int main(){int arr[8] = {5,8,6,3,9,2,1,7};sort(arr,8);for(int i =0; i < 8;i++){printf("%d\t",arr[i]);}printf("\n");return 0;
}

算法每一轮会选出一个最小值,再交换到左侧的时间复杂度是O(n),总共要迭代n-1次,所以时间复杂度为O(n2)。

因为该算法是原地排序的,并没有用到额外的存储空间,所以排序的空间复杂度为O(1)。

选择排序比冒泡排序有着交换次数更少的优点,但是它的缺点的是不稳定。这里的不稳定指的是当数列中有着多个值相等的元素时,选择排序有可能打乱了它们原有的顺序。也就是值相等的元素在数列中的相对位置不变,就是稳定,变了,就是不稳定。

http://www.dtcms.com/a/614216.html

相关文章:

  • 【开题答辩全过程】以 房产网站为例,包含答辩的问题和答案
  • spring Profile
  • 当AI不再等待指令:智能体工作流如何重构商业逻辑
  • 手机网站建设哪儿好wordpress怎么固定导航栏
  • 基于大数据Python豆瓣电影可视化系统 电影数据爬虫 数据清洗+数据可视化 Flask+requests (MySQL+Echarts 源码+文档)✅
  • 自己建设网站怎么挣钱微信小程序推广软件
  • 专门做继电器的网站泉州做网站优化哪家好
  • 信息安全工程师软考精通:第六章物理与环境安全深度解析
  • Spring Data 什么是Spring Data 理解
  • 石家庄做网站需要多少钱黄骅港旅游景点大全
  • 破解入门学习笔记题四十六
  • go-context创建及使用详细概括
  • go进阶学习
  • 做网站建设培训wordpress如何添加网站地图
  • 网站关键词搜索排名优化郑州建设网站定制
  • Java输入输出:编程世界的入口和出口
  • Xcode编译C语言:提升编译效率与调试技巧
  • MONGO-EXPRESS Docker 容器化部署指南
  • 免费psd图片素材网站邯郸网站开发
  • IDEA配置Maven
  • 昆明做网站外包预定型网站有哪些
  • 深圳建设工程交易中心网站百度链接提交地址
  • 《中医基础理论》- 2.哲学基础之藏象学说-肾系统详解
  • 绍兴网站建设方案响应式网站建设报价单
  • 采用Langchain调用LLM完成简单翻译任务
  • 游戏网站建设流程图注册一个电商公司需要多少钱
  • 深度拥抱变革:AI 重塑临床工作流与医院信息化的战略蓝图与实施路线
  • 北京网站制作公司招聘淘宝客网站备案
  • 服务器开荒:安装宝塔面板
  • 基于AWS的应用程序可靠性提升架构优化方案——RDS多可用区与EC2弹性架构实践