C语言——选择排序

news2025/1/18 17:04:26

完整代码:

//选择排序
// 选择排序是一种简单直观的排序算法。它的工作原理如下:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕
#include<stdio.h>

//交换两个数
void swap(int *a,int *b){
    int temp;
    temp=*a;
    *a=*b;
    *b=temp;
}

//选择排序
//传入数组和数组长度
void select_sort(int arr[],int len){
    //双重循环
    //外层循环是给每个arr[i]都交换每次内层循环中最小的那个数
    for (int i = 0; i < len-1; i++)
    {
        //开始时默认最小数为arr[i]
        int min=i;
        //内层循环找到本次循环中最小的那个数
        for (int j =len-1; j >i ; j--)
        {
            if (arr[j]<arr[min])
            {
                //记录最小值的下标
                min=j;
            }
        }
        //交换arr[i]与arr[min]的位置,使arr[i]成为本次循环中的最小值
        swap(&arr[i],&arr[min]);
    }
    
}

int main(){
    int arr[6]={2,6,3,5,9,1};
    printf("排序前数组:\n");
    for (int i = 0; i < 6; i++)
    {
        printf("%d ",arr[i]);
    }
    select_sort(arr,6);
    printf("\n排序后数组:\n");
    for (int i = 0; i < 6; i++)
    {
        printf("%d ",arr[i]);
    }
    return 0;
}

运行截图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1171919.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Rocky 安装jdk17

1&#xff09;检测jdk是否安装&#xff1a; #运行 java -version如果提示安装&#xff0c;则输入N&#xff0c;跳过 2&#xff09;检测cpu 类型 若未安装查看linux处理器架构&#xff1a; #运行 hostnamectl #或运行 arch 3&#xff09;去官网下载相应的编译版本的Jdk Or…

[SSD综述1.7] SSD接口形态: SATA、M.2、U.2、PCIe、BGA

依公知及经验整理,原创保护,禁止转载。 专栏 《SSD入门到精通系列》 <<<< 返回总目录 <<<< 前言 犹记得当年Windows 7系统体验指数中,那5.9分磁盘分数,在其余四项的7.9分面前,似乎已经告诉我们机械硬盘注定被时代淘汰。势如破竹的SSD固态硬盘,彻…

万岳讲堂:抖音小程序开发入门指南

抖音小程序可以将开发者的创意带入这个热门的应用中。本文将带您深入了解抖音小程序的开发入门指南&#xff0c;帮助您开始在这一平台上构建自己的应用。 一、什么是抖音小程序&#xff1f; 抖音小程序是一种轻量级的应用程序&#xff0c;它可以在抖音中直接运行&#xff0c;无…

记录腾讯云重置密码之后ssh就连不上的踩坑

腾讯云轻量级服务器SSH连不上 解决方案在最后&#xff0c;点我跳转 问题背景&#xff1a; 首先ssh ubuntu用户我是能用xshell带上密钥正常连接的 其次我重置了root密码&#xff0c;自己改了一个root密码&#xff0c;因为我要用root账号使用ftp传输文件 然后重置密码之后&…

【Unity细节】生命函数Start的逻辑比从外部调用方法比起来哪个快

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 &#x1f636;‍&#x1f32b;️收录于专栏&#xff1a;unity细节和bug &#x1f636;‍&#x1f32b;️优质专栏 ⭐【…

解决vmware安装ubuntu虚拟机显示不全以及无法实现windows与虚拟机之间无法相互复制粘贴问题

01、存在问题 02、解决方案 sudo apt-get autoremove open-vm-tools sudo apt-get install open-vm-tools sudo apt-get install open-vm-tools-desktop reboot //重启在这里插入图片描述 存在Bug 如果遇到一下问题&#xff0c;请先执行下列命令&#xff0c;然后…

基于51单片机数字电压表的设计

**单片机设计介绍&#xff0c;1664【毕设课设】基于51单片机数字电压表的设计(仿真、程序、原理图、论文) 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的数字电压表是一种可以测量直流电压并将其以数字形式显示的…

【C++ 学习 ㉛】- 详解 C++11 的 lambda 表达式

目录 一、语法格式 二、函数对象和 lambda 表达式 一、语法格式 定义一个 lambda 表达式&#xff08;lambda 函数&#xff09;的语法格式如下&#xff1a; [capture-list] (parameters) mutable noexcept/throw() -> return-type { statements }; 即 [捕获列表] (参数列…

register_parameter和register_buffer 详解

在参考yolo系列代码或其他开源代码&#xff0c;经常看到register_buffer和 register_parameter的使用&#xff0c;接下来将详细对他们进行介绍。 1. 前沿 在搭建网络时&#xff0c;我们 自定义的参数&#xff0c;往往不会保存到模型权重文件中&#xff0c;或者成为模型可学习…

【多线程】并发问题

public class BuyTicket implements Runnable{private int ticketNums10;Overridepublic void run() {for(int i1;i<ticketNums;i){if(ticketNums<0){break;}System.out.println(Thread.currentThread().getName() "抢到了第" i "张票");ticketNu…

数字处理-第10届蓝桥杯省赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第3讲。 数字处理&#xff…

高性能网络编程 - 关于单台服务器并发TCP连接数理论值的讨论

文章目录 概述操作系统的限制因素文件句柄限制1. 进程限制2. 全局限制 端口号范围限制 概述 单台服务器可以支持的并发TCP连接数取决于多个因素&#xff0c;包括硬件性能、操作系统限制、网络带宽和应用程序设计。以下是一些影响并发TCP连接数的因素&#xff1a; 服务器硬件性…

软件设计模式原则(二)开闭原则

继续讲解第二个重要的设计模式原则——开闭原则~ 一.定义 开闭原则&#xff0c;在面向对象编程领域中&#xff0c;规定“软件中的对象&#xff08;类&#xff0c;模块&#xff0c;函数等等&#xff09;应该对于扩展是开放的&#xff0c;但是对于修改是封闭的”&#xff0c;这意…

Golang源码分析之golang/sync之singleflight

1.1. 项目介绍 golang/sync库拓展了官方自带的sync库&#xff0c;提供了errgroup、semaphore、singleflight及syncmap四个包&#xff0c;本次分析singlefliht的源代码。 singlefliht用于解决单机协程并发调用下的重复调用问题&#xff0c;常与缓存一起使用&#xff0c;避免缓存…

Capto2024专为Mac电脑设计的屏幕录制和视频编辑软件

不得不说视频编辑功能&#xff1a;Capto提供了多种视频编辑功能&#xff0c;例如剪辑、旋转、裁剪、调整音频和视频的音量、加入水印、添加注释等&#xff0c;你能够使用Capto编辑你的视频&#xff0c;使之更加专业和生动。有目共睹的是录制完成后&#xff0c;你能够使用Capto提…

PowerShell实战:文件操作相关命令笔记

目录 1、New-Item 创建新项命令 2、Remove-Item 删除项命令 3、Rename-Item 项重命名 1、New-Item 创建新项命令 cmdlet New-Item 将创建新项并设置其值。 可创建的项类型取决于项的位置。 例如&#xff0c;在文件系统 New-Item 中创建文件和文件夹。 在注册表中&#xff0c; N…

叶片卷曲

叶片卷曲 上卷/内卷白粉病强烈阳光&温度太高虫害&#xff08;蓟马&#xff09; 下卷 叶片卷曲的原因有很多&#xff0c;很多情况无法从外表分辨&#xff0c;并且有可能多种原因混杂&#xff0c;扰乱判断 上卷/内卷 白粉病 当植株感染白粉病时&#xff0c;白粉病菌孢子附…

c语言进阶部分详解(《高质量C-C++编程》经典例题讲解及柔性数组)

上篇文章我介绍了介绍动态内存管理 的相关内容&#xff1a;c语言进阶部分详解&#xff08;详细解析动态内存管理&#xff09;-CSDN博客 各种源码大家可以去我的github主页进行查找&#xff1a;唔姆/比特学习过程2 (gitee.com) 今天便接“上回书所言”&#xff0c;来介绍《高质…

CANoe新建XML自动化Test Modules

文章目录 1.打开Test Modules2.新建Environment3.新建XML Test Modules4.新建.can文件5.打开XML Test Modules6.新建xml脚本并保存7.编译8.在.can文件写个测试用例9.修改报告格式为HTML10.运行查看报告后面介绍的文章会重复用到这部分,这里单独介绍下,后面不做重复介绍。 1.…

Envoy XDS协议学习

Envoy xds学习 资料地址 envoy官网资料连接 接口说明 xds分为增量接口和全量接口SotW&#xff1a;state of the world 即全量的数据Incremental&#xff1a; 增量的数据 具体接口 Listener: Listener Discovery Service (LDS) SotW: ListenerDiscoveryService.StreamList…