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

数据结构与算法:1,选择排序

以 从小到大排序为例

排序算法的过程:1,找出最小值位置  2,把最小值移到起始位置,3,循环重复前两步

图片来源

1,找出最小值位置

#include<iostream> 
int main()
{int x[10] = { 12,14,45,5,43,23,24,2543,25,342 };int 最小值位置 = 0;for (int i = 0;i < 10;i++){if (x[最小值位置] > x[i])最小值位置 = i;}std::cout << "最小值位置 " << 最小值位置 << std::endl;return 0;
}

2,把最小值移到起始位置

#include<iostream> 
int main()
{int x[10] = { 12,14,45,5,43,23,24,2543,25,342 };//1,找出最小值位置	int 最小值位置 = 0;for (int i = 0;i < 10;i++){if (x[最小值位置] > x[i])最小值位置 = i;}std::cout << "最小值位置 " << 最小值位置 << std::endl;//2,把最小值移到起始位置int 起始位置 = 0;int 临时存储;临时存储 = x[起始位置];x[起始位置] = x[最小值位置];x[最小值位置] = 临时存储;//输出 数组每个值 测试一下for (int i = 0;i < 10;i++){std::cout << x[i] << " ";}std::cout << std::endl;return 0;return 0;
}

3,循环重复前两步

#include<iostream> 
int main()
{int x[10] = { 12,14,45,5,43,23,24,2543,25,342 };for (int 起始位置 = 0;起始位置 < 10;起始位置++)//3,循环重复前两步{//1,找出最小值位置		int 最小值位置 = 起始位置;               //第三步中  这里改成 起始位置for (int i = 起始位置;i < 10;i++)        //第三步中  这里改成 起始位置{if (x[最小值位置] > x[i])最小值位置 = i;}std::cout << "最小值位置 " << 最小值位置 << std::endl;//2,把最小值移到起始位置int 临时存储;临时存储 = x[起始位置];x[起始位置] = x[最小值位置];x[最小值位置] = 临时存储;}//输出 数组每个值 测试一下for (int i = 0;i < 10;i++){std::cout << x[i] << " ";}std::cout << std::endl;return 0;
}

下面用类来实现,复习一下类的知识

#include<iostream> class A
{
public:int x[10];A()//构造函数里 初始化数组中的值{x[0] = 12;x[1] = 14;x[2] = 45;x[3] = 5;x[4] = 43;x[5] = 23;x[6] = 24;x[7] = 2543;x[8] = 25;x[9] = 342;}void 输出(){for (int i = 0;i < 10;i++){std::cout << x[i] << " ";}std::cout << std::endl;}int 找出最小值的位置(int 起始位置){//1,找出最小值位置		int 最小值序号 = 起始位置;               //第三步中  这里改成 起始位置for (int i = 起始位置;i < 10;i++)        //第三步中  这里改成 起始位置{if (x[最小值序号] > x[i])最小值序号 = i;}//std::cout << "最小值序号 " << 最小值序号 << std::endl;return 最小值序号;}void 交换值(int 位置a, int 位置b){//2,把最小值移到起始位置int 临时存储;临时存储 = x[位置a];x[位置a] = x[位置b];x[位置b] = 临时存储;}void 开始选择排序()//这里演示 从小到大排序{int 最小值位置 = 0;for (int 起始位置 = 0;起始位置 < 10;起始位置++){最小值位置 = 找出最小值的位置(起始位置);交换值(起始位置, 最小值位置);}}
};
int main()
{A a;a.输出();//排序前 输出一下 看看效果a.开始选择排序();a.输出();//排序后 输出一下 看看效果return 0;
}


http://www.mrgr.cn/news/96301.html

相关文章:

  • 菜鸡前端计算机强基计划之CS50 第七课 python 入门—— Python 中文件操作专题学习
  • 基于SpringBoot的“交通旅游订票系统”的设计与实现(源码+数据库+文档+PPT)
  • linux》》docker 、containerd 保存镜像、打包tar、加载tar镜像
  • 5.0 WPF的基础介绍1-Grid,Stack,button
  • flink 分组窗口聚合 与 窗口表值函数聚合 的区别
  • Codeforces Round 1013 (Div. 3)-F
  • 06-SpringBoot3入门-常见注解(简介)
  • 典范硬币系统(Canonical Coin System)→ 贪心算法
  • 【商城实战(93)】商城高并发实战:分布式锁与事务处理深度剖析
  • 如何一键安装所有Python项目的依赖!
  • GenBI 中如何引入 LLM 做意图路由,区分查数据还是闲聊
  • 【C#】Task 线程停止
  • 构建高可用性西门子Camstar服务守护者:异常监控与自愈实践
  • Audacity Nyquist插件开发:定义输入框和获取用户输入
  • #VCS# 关于 +incdir+xxx 编译选项的注意点
  • 【Zabbix技术系列文章】第①篇——基础入门
  • Selenium Web自动化如何快速又准确的定位元素路径,强调一遍是元素路径
  • rent8_wechat-新增提醒收租功能
  • SQL优化 | OceanBase是否遵循最左匹配原则?(三)
  • [异步监听事件、异步绑定属性]通过vue的this.$refs.组件.$props和.$on实现异步绑定组件属性和事件监听