新手快速上手掌握基础排序<一>

听说看到日落金山的人,接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧
引言
从基础的两数交换排序,三四个数排序输出,到学习入门级的排序方法,如冒泡法,选择法,再学习更加快速,便捷的高级排序方法,说明排序是一个很重要的问题,接下来我们就先从基础入门排序方法学习起
一:两数互换排序
1.画图分析

2.代码实现

二:三数换交换排序
在学习两数交换后,三数交换便用两数交换的方法
1.例题举例
如:输入三个整数并按从大到小的顺序输出
输入:1,2,3
输出:3,2,1
如果,a=1,b=2,不符合从大到小的顺序,则交换a,b,此时a是较大的一个数,再与c比较,不符合再互换,b与c比较,不符合互换
2.代码实现

3.再比如四数互换排序,也可以使用两数互换的方法来实现 ,但最好使用基础的排序方法(冒泡法,选择法)
三:冒泡法
1.动态图展示

2.基本思想
遍历比较两个相邻元素的大小,按一个比较规则交换
遍历一轮后,得到一个最大/最小元素 ,在数组最前端/最后端
按第一步遍历余下的(n-1)个元素,直至余下元素个数为1为止,排序结束
通过比较一组数中相邻两个数的大小,来一步步实现排序,每趟排序即可确定一个数的位置
3.代码实现
#include <stdio.h>
#define N 5
int main()
{int a[N]={0};int i=0;for(i=0;i<N;i++){scanf("%d",&a[i]);}int j=0;for(i=0;i<N-1;i++)//趟数{for(j=0;j<N-1-i;j++)//两两元素比较{if(a[j]<a[j+1])//从大到小排序,如果后项比前项大的话,则互换{int t=a[j];a[j]=a[j+1];a[j+1]=t;}}}for(i=0;i<N;i++){printf("%d ",a[i]);}
return 0;
}
4.结果输出

四:选择法
1.动态图展示


2.基本思想
- 从待排序序列中,找到最小的元素;
- 如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;
- 从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。
因此我们可以发现,简单选择排序也是通过两层循环实现。
第一层循环:依次遍历序列当中的每一个元素
第二层循环:将遍历得到的当前元素依次与余下的元素进行比较,符合最小元素的条件,则交换。
3.代码实现
#include<stdio.h>
#define N 5
int main()
{int a[N] = { 0 };int i = 0;for (i = 0; i < N; i++){scanf("%d", &a[i]);}int m = 0, t = 0,j=0;for (i = 0; i < N - 1; i++)//趟数{m = i;//m存储最大值的下标for (j = i + 1; j < N; j++){if (a[m] < a[j]) m = j;//如果a[m]<a[j],则m=j继续存储最大值的下标}if (m != i)//如果此时m存储的最大值下标与i不相等的话,则互换{t = a[m]; a[m] = a[i]; a[i] = t;}}for (i = 0; i < N; i++){printf("%d ", a[i]);}return 0;
}
五:感谢观看,将为你持续更新
相关文章:
新手快速上手掌握基础排序<一>
听说看到日落金山的人,接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧 引言 从基础的两数交换排序,三四个数排序输出,到学习入门级的排序方法,如冒泡法,选择法,再学…...
2023年03月21日_chatgpt宕机事件的简单回顾
你能想象吗 ChatGPT挂了 昨天半夜呢 来自全球各地的用户纷纷发现 ChatGPT的网站弹出了报错警告的信息 然后立即就无法使用了 即使是有特权的plus账户也未能幸免 一时之间呢 chatgptdown的话题在Twitter刷屏 不少重度的用户表示很着急 有的用户说呢没了ChatGPT 这工作…...
RK3568测试tdd
RK3568测试tdd 一、门禁取包二、烧录三、跑tdd用例四、查看结果参考资料 一、门禁取包 右键复制链接,粘贴下载;解压到文件夹; 二、烧录 双击\windows\RKDevTool.exe打开烧写工具,工具界面击烧写步骤如图所示: 推荐…...
机器学习系列13:通过随机森林获取特征重要性
我们已经知道通过 L1 正则化和 SBS 算法可以用来做特征选择。 我们还可以通过随机森林从数据集中选择相关的特征。随机森林里面包含了多棵决策树,我们可以通过计算特征在每棵决策树决策过程中所产生的的信息增益平均值来衡量该特征的重要性。 你可能需要参考&…...
flink中值得监控的几个指标
背景 为了维持flink的正常运行,对flink的日常监控就变得很重要,本文我们就来看一下flink中要监控的几个重要的指标 重要的监控指标 1.算子的处理速度的指标:numRecordsInPerSecond/numRecordsOutPerSecond,这有助于你了解到算子的是否正在…...
最优化方法Python计算:无约束优化应用——逻辑分类模型
逻辑回归模型更多地用于如下例所示判断或分类场景。 例1 某银行的贷款用户数据如下表: 欠款(元)收入(元)是否逾期17000800Yes220002500No350003000Yes440004000No520003800No 显然,客户是否逾期ÿ…...
springboot定时执行某个任务
springboot定时执行某个任务 要定时执行的方法加上Schedule注解 括号内跟 cron表达式 “ 30 15 10 * * ?” 代表秒 分 时 日 月 周几 启动类上加上EnableScheduling 注释...
Java EE Servlet之Servlet API详解
文章目录 1. HttpServlet1.1 核心方法 2. HttpServletRequest3. HttpServletResponse 接下来我们来学习 Servlet API 里面的详细情况 1. HttpServlet 写一个 Servlet 代码,都是要继承这个类,重写里面的方法 Servlet 这里的代码,只需要继承…...
neo4j运维管理
管理数据库 概念 Neo4j 5(从v4.0),可以同时创建和使用多个活动数据库。 DBMS Neo4j是一个数据库管理系统(DBMS),能够管理多个数据库。DBMS可以管理一个独立的服务器,也可以管理集群中的一组服务器。 实例 Neo4j实例是运行Neo4j服务器代…...
【MYSQL】-函数
💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …...
传统船检已经过时?AR智慧船检来助力!!
想象一下,在茫茫大海中,一艘巨型货轮正缓缓驶过。船上的工程师戴着一副先进的AR眼镜,他们不再需要反复翻阅厚重的手册,一切所需信息都实时显示在眼前。这不是科幻电影的场景,而是智慧船检技术带来的现实变革。那么问题…...
JAVA进化史: JDK11特性及说明
JDK 11(Java Development Kit 11)是Java平台的一个版本,于2018年9月发布。这个版本引入了一些新特性和改进,以下是其中一些主要特性。 HTTP Client(标准化) JDK 11引入了一个新的HTTP客户端,用…...
模型 安索夫矩阵
本系列文章 主要是 分享模型,涉及各个领域,重在提升认知。产品市场战略。 1 安索夫矩阵的应用 1.1 江小白的多样化经营策略 使用安索夫矩阵来分析江小白市场战略。具体如下: 根据安索夫矩阵,江小白的现有产品是其白酒产品&…...
性能手机新标杆,一加 Ace 3 发布会定档 1 月 4 日
12 月 27 日,一加宣布将于 1 月 4 日发布新品一加 Ace 3。一加 Ace 系列秉持「产品力优先」理念,从一加 Ace 2、一加 Ace 2V 到一加 Ace 2 Pro,款款都是现象级爆品,得到了广大用户的认可与支持。作为一加 2024 开年之作࿰…...
Vue 框架前导:详解 Ajax
Ajax Ajax 是异步的 JavaScript 和 XML。简单来说就是使用 XMLHttpRequest 对象和服务器通信。可以使用 JSON、XML、HTML 和 text 文本格式来发送和接收数据。具有异步的特性,可在不刷新页面的情况下实现和服务器的通信,交换数据或者更新页面 01. 体验 A…...
3分钟快速安装 ClickHouse、配置服务、设置密码和远程登录以及修改数据目录
下面是一个完整的 ClickHouse 安装和配置流程,包括安装 ClickHouse、配置服务、设置密码和远程登录以及修改数据目录。 安装 ClickHouse 安装 YUM 工具包: sudo yum install -y yum-utils添加 ClickHouse YUM 仓库: sudo yum-config-manager…...
PHP8使用PDO对象增删改查MySql数据库
PDO简介 PDO(PHP Data Objects)是一个PHP扩展,它提供了一个数据库访问层,允许开发人员使用统一的接口访问各种数据库。PDO 提供了一种用于执行查询和获取结果的简单而一致的API。 以下是PDO的一些主要特点: 统一接口…...
证明:切线垂直于半径
证明: 切线垂直于过切点的半径。 下面是网上最简单的证明方法。 证明: 利用反证法。 如下图所示,直线AB和圆O切于点A,假设OA 不垂直于 AB,而 O B ⊥ A B OB \perp AB OB⊥AB,则 ∠ O B A 90 \angle OB…...
普中STM32-PZ6806L开发板(STM32CubeMX创建项目并点亮LED灯)
简介 搭建一个用于驱动 STM32F103ZET6 GPIO点亮LED灯的任务;电路原理图 LED电路原理图 芯片引脚连接LED驱动引脚原理图 创建一个点亮LED灯的Keil 5项目 创建STM32CubeMX项目 New Project -> 单击 -> 芯片搜索STM32F103ZET6->双击创建 初始化时钟 调试设置 一…...
【Windows】共享文件夹拍照还原防火墙设置(入站,出站设置)---图文并茂详细讲解
目录 一 共享文件夹(两种形式) 1.1 普通共享与高级共享区别 1.2 使用 二 拍照还原 2.1 是什么 2.2 使用 三 防火墙设置(入栈,出站设置) 3.1 引入 3.2 入站出站设置 3.2.1入站出站含义 3.3入站设置 3.4安装jdk 3.5使用tomcat进行访…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
