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

利用c语言详细介绍下选择排序

    选择排序(Selection sort)是一种简单直观的排序算法。它是每次选出最小或者最大的元素放在开头或者结尾位置(采用升序的方式),最终完成列表排序的算法。

一、图文介绍

    我们还是使用数组【10,5,3,20,1]。

1.1,内循环第一遍

    我们首先从第一个元素开始,利用一个临时空间存放最小值,然后逐步往后比对,最终找到最小的那个数1,并将第一个元素和1进行交换:

1.2,内循环第二遍

    内循环第二遍,我们开始从第二个元素开始去寻找剩余元素的最小值:

1.3,内循环第三遍

1.4,内循环第四遍

 

二、算法实现

2.1,选择排序

    我们用c语言写一个函数,函数里面实现具体算法:

int * selectSort(int *arr,int len){int idx,tmp;for(int i=0;i<len-1;i++){tmp = arr[i]; //临时存放最小值的变量idx = i;for(int j=i+1;j<len;j++) //内循环遍历查询最小值{if(arr[j]<tmp){tmp = arr[j];idx = j;}}tmp = arr[i];arr[i] = arr[idx]; //元素交换arr[idx] = tmp;}return arr;
}

2.2,程序测试

int main() {int a[]={10,5,3,20,1};int *p = selectSort(a,5);printf("the array a after sort is ");for(int i=0;i<5;i++){printf("%d ", *(p++));}}

 

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

相关文章:

  • 华为流程L1-L6业务流程深度细化到可执行
  • bridge-multicast-igmpsnooping
  • git使用(一)
  • Linux环境安装MongoDB
  • Cyberchef使用功能之-多种压缩/解压缩操作对比
  • TypeScript 装饰器都有那些应用场景?如何更快的上手?
  • 堆优化版本的Prim
  • Ubuntu上安装MySQL并且实现远程登录
  • 蓝桥杯每日真题 - 第21天
  • (长期更新)《零基础入门 ArcGIS(ArcMap) 》实验一(下)----空间数据的编辑与处理(超超超详细!!!)
  • NLP论文速读(CVPR 2024)|使用DPO进行diffusion模型对齐
  • 操作系统——揭开盖子
  • 如何在 React 项目中应用 TypeScript?应该注意那些点?结合实际项目示例及代码进行讲解!
  • C++学习第四天
  • 【从零开始的LeetCode-算法】3232. 判断是否可以赢得数字游戏
  • 一种简单高效的RTSP流在线检测方法,不需要再过渡拉流就可以获取设备状态以及对应音视频通道与编码格式
  • 24/11/22 项目拆解 艺术风格转移
  • 数字赋能,气象引领 | 气象景观数字化服务平台重塑京城旅游生态
  • 关于Redux的学习(包括Redux-toolkit中间件)
  • 【无人机】
  • Zabbix7.0.6的容器镜像准备
  • 利用 GitHub 和 Hexo 搭建个人博客【保姆教程】
  • React第四节 组件的三大属性之state
  • MongoDB进阶篇-索引(索引概述、索引的类型、索引相关操作、索引的使用)
  • 使用FFmpeg实现视频与GIF的画中画效果
  • 车载信息安全框架 --- 车载信息安全相关事宜
  • Unreal5从入门到精通之EnhancedInput增强输入系统详解
  • 泛微E9与金蝶云星空的集成方案:实现审批流程与财务管理的无缝对接
  • 理解设计模式与 UML 类图:构建稳健软件架构的基石
  • FastAPI重载不生效?解决PyCharm中Uvicorn无法重载/重载缓慢的终极方法!