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

选择排序(C语言)

一、步骤

选择排序的基本思想:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完 。

1.首先,我们先建立一个乱序数组,如:

 2.其次,我们遍历数组选出最大或最小的元素,与数组的尾部或首部位置的元素位置互换。在这里,为了提高效率,我们可以遍历一遍把最大和最小的元素一起选出,然后放到该在的位置。

3.重复上述步骤即可

图片详述:

二、代码

void Swap(int* p1, int* p2)
{int tmp = *p1;*p1 = *p2;*p2 = tmp;
}
void SelectSort(int* arr, int n)
{int begin = 0, end = n - 1;while (begin < end){	int maxi = begin, mini = begin; for (int i = begin; i <= end; i++){if (arr[i] < arr[mini]){mini = i;}if (arr[i] > arr[maxi]){maxi = i;}}Swap(&arr[begin], &arr[mini]);if (begin == maxi) //begin的位置可能和maxi的位置重合,当执行上述代码Swap(&arr[begin], &arr[mini])时,begin位置的元素可能会跑到mini位置上去{maxi = mini;}Swap(&arr[end], &arr[maxi]);begin++;end--;}
}

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

相关文章:

  • ✍Qt自定义带图标按钮
  • 【Git】如何在 Git 项目中引用另一个 Git 项目:子模块与子树合并
  • webstorm 打开prettier的项目代码后面会出现红色的波浪线
  • 用 Python 从零开始创建神经网络(二):第一个神经元的进阶
  • 一、文心一言问答系统为什么要分对话,是否回学习上下文?二、文心一言是知识检索还是大模型检索?三、文心一言的词向量、词语种类及多头数量
  • C++ 的协程
  • D3的竞品有哪些,D3的优势,D3和echarts的对比
  • 大厂计算机网络高频八股文面试题及参考答案(面试必问,持续更新)
  • 【bayes-Transformer-GRU多维时序预测】多变量输入模型。matlab代码,2023b及其以上
  • 动手学深度学习69 BERT预训练
  • 【2024软考架构案例题】你知道 Es 的几种分词器吗?Standard、Simple、WhiteSpace、Keyword 四种分词器你知道吗?
  • Elman 神经网络 MATLAB 函数详解
  • vue el-date-picker 日期选择器禁用失效问题
  • 搭建Python2和Python3虚拟环境
  • 【HarmonyOS NEXT】一次开发多端部署(以轮播图、Tab栏、列表为例,配合栅格布局与媒体查询,进行 UI 的一多开发)
  • ubontu--cuDNN安装
  • 高项 - 项目范围管理
  • 如何获取PostgreSQL慢查询?从小白到高手的实战指南
  • golang分布式缓存项目 Day4 一致性哈希
  • ARM 汇编指令
  • 打造个性化体验:在Axure中创建你的专属组件库
  • 如何用WordPress和Shopify提升SEO表现?
  • 不泄密的安全远程控制软件需要哪些技术
  • rust高级特征
  • STM32F407简单驱动步进电机(标准库)
  • 使用热冻结数据层生命周期优化在 Elastic Cloud 中存储日志的成本
  • LeetCode131. 分割回文串(2024冬季每日一题 4)
  • 万字长文解读深度学习——训练(DeepSpeed、Accelerate)、优化(蒸馏、剪枝、量化)、部署细节
  • STM32—独立看门狗(IWDG)和窗口看门狗(WWDG)
  • ks8 本地化部署 F5-TTS