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

考研要求掌握的C语言(选择排序)

选择排序的特点

每次进行一趟排序后,就确定一个数据的最终位置

选择排序的原理

就是假设你是最小(最大数据)的下标,然后和其他进行比较,若发现还有比你还小(或还大)的数据,就更新下标,直到挨个遍历后,确定最终的下标进行交换数据,就是把你和最终所确定的下标进行数据交换

核心代码实战

//选择排序void select_sort(int nums[],int len){for(int i = 0;i<len;i++){int min = i;//假设最小值的下标就是当前位置的值for(int j=i+1;j<len;j++){if(nums[j]<nums[min]){min=j;}}//交换值,这一趟下来确定该元素的最终位置swap(nums[min],nums[i]);}}

 

 完整代码可运行

#include<stdio.h>
#include<string.h>
#include<time.h>
#include<stdlib.h>void swap(int &a,int &b)
{int tmp=a;a=b;b=tmp;
}void rangnums(int nums[],int len)
{srand(time(NULL));//初始化数组printf("初始化数组:");for(int i=0;i<len;i++){nums[i]=rand()%100+1;printf("%d ",nums[i]);}puts("");
}void print(int a[],int len)
{for(int i=0;i<len;i++){printf("%d ",a[i]);}puts("");
}//选择排序void select_sort(int nums[],int len){for(int i = 0;i<len;i++){int min = i;//假设最小值的下标就是当前位置的值for(int j=i+1;j<len;j++){if(nums[j]<nums[min]){min=j;}}//交换值,这一趟下来确定该元素的最终位置swap(nums[min],nums[i]);printf("第%d趟结果为:",i+1);print(nums,len);}}int main()
{int a[10]={92 ,79 ,49, 59, 86 ,38, 94, 64, 92, 3};rangnums(a,10);select_sort(a,10);print(a,10);}

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

相关文章:

  • 达梦8数据库适配ORACLE的8个参数
  • CSS实现文字渐变效果
  • 3. Redis的通用命令介绍
  • [spark面试]spark与mapreduce的区别---在DAG方面
  • tomcat启动失败和缓存清理办法
  • 【软件测试】需求的概念和常见模型(瀑布、螺旋、增量、迭代)
  • Python爬虫如何处理验证码与登录
  • QT添加资源文件
  • 负载均衡式在线oj项目开发文档(个人项目)
  • Python小白学习教程从入门到入坑------第二十六课 单例模式(语法进阶)
  • 革命性AI搜索引擎!ChatGPT最新功能发布,无广告更智能!
  • windows C#-使用异常
  • 玩的花,云产品也能拼团了!!!
  • HTML+CSS基础【快速上手】
  • mysql分布式锁
  • 探索四款强大的免费报表工具,提升数据可视化能力
  • 电机可靠性影响因素研究
  • GB/T 28046.4-2011 道路车辆 电气及电子设备的环境条件和试验 第4部分:气候负荷(6)
  • 后端接口返回二进制文件,前端 window.opent预览展示
  • 基于STM32的红外遥控接收器
  • K8S网络插件故障处理
  • 优化前端开发中的提示语设计基本原则
  • 飞凌嵌入式FET527N-C核心板现已适配Android 13
  • uniapp 如何修改 返回按钮(左上角+物理按钮+侧滑)触发的返回事件
  • appium启动 install driver安装驱动
  • 【机器学习】均方误差根(RMSE:Root Mean Squared Error)
  • [含文档+PPT+源码等]精品基于springboot实现的原生Andriod广告播放系统
  • 【机器学习】均方误差(MSE:Mean Squared Error)
  • 融合虚拟与现实,AR Engine为用户提供沉浸式交互体验
  • python | xmltodict,一个非常厉害的 关于XML数据 Python 库!