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

C语言——选择排序

完整代码:

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

相关文章:

  • vue详细安装教程
  • Java 正则表达式字符篇
  • shell脚本代码混淆
  • 【MATLAB第81期】基于MATLAB的LSTM长短期记忆网络预测模型时间滞后解决思路(更新中)
  • 订单业务和系统设计(一)
  • 安全模型的分类与模型介绍
  • I/O多路转接之select
  • “如何对TXT文件的内容进行连续行删除?实现一键文件整理!
  • stable diffusion公司发布4款LLM大语言模型,为何大家都喜爱LLM?
  • 堆排序--C++实现
  • 【数据结构】数组和字符串(十四):字符串匹配1:朴素的模式匹配算法(StringMatching)
  • VMWare虚拟机问题
  • 代码随想录算法训练营第23期day39 |62.不同路径、63. 不同路径 II
  • 白帽黑客入门,“每天一个黑客技巧”实现黑客的自我突破 !(附工具包!)
  • Jmeter参数化 —— 循环断言多方法
  • Autosar诊断实战系列26-Dem(DTCEvent)要点及配置开发详解
  • STL(第五课):queue
  • 点大商城V2版 2.5.2.1 全开源独立版 多小程序端+unipp安装教程
  • Redo Log(重做日志)的刷盘策略
  • QT窗体之间值的传递,多种方法实现
  • 政务服务技能竞赛中用到的软件和硬件
  • tcp/ip该来的还是得来
  • OpenCV官方教程中文版 —— 图像修复
  • 前端难学还是后端难学?系统安全,web安全,网络安全是什么区别?
  • diffusers-Load pipelines,models,and schedulers
  • 私域营销必备:轻松掌握微信CRM管理方法
  • 最长回文子串-LeetCode5 动态规划
  • mysql简单备份和恢复
  • JMeter介绍
  • flink job同时使用BroadcastProcessFunction和KeyedBroadcastProcessFunction例子