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

Rust冒泡排序

Rust冒泡排序

这段代码定义了一个名为 bubble_sort 的函数,接受一个可变的整数类型数组作为输入,然后使用嵌套的循环来实现冒泡排序。外部循环从数组的第一个元素开始迭代到倒数第二个元素,内部循环从数组的第一个元素开始迭代到倒数第二个元素。如果当前元素比下一个元素大,则交换它们的位置。在循环结束后,数组就会按升序排列。

在 main 函数中,我们定义了一个整数类型的数组,并将其传递给 bubble_sort 函数进行排序。最后,程序将输出排序后的数组

fn bubble_sort(arr: &mut [i32]) {//参数是可变化的i32的数组let n = arr.len();   //获取arr的数组的长度,坐标从0开始for i in 0..n {      //总循环是n次for j in 0..n-i-1 {    //冒泡排序,每次处理一个减少一次。if arr[j] > arr[j+1] {  //如果 前面的记录后面一个数值,交换,大值冒泡到后面arr.swap(j, j+1);}}}
}fn main() {let mut arr = [5, 2, 9, 1, 5, 6,13,20,18];bubble_sort(&mut arr);println!("排序后的数组:{:?}", arr); // 输出 [1, 2, 5, 5, 6, 9]
}

VsCode 安装Rust插件

检查运行环境

编写第一个代码,大家都会,但也要编写,目的是检测环境,安装了rust为1.72.1版本

rustc --version
rustc 1.72.1 (d5c2e9c34 2023-09-13)

运行基本的代码Hello_world代码,这个简单

代码为

fn main(){let s="Hello world!";println!("{}",s);}

let为定义了一个s为字符串,赋值为Hello world!的字符串,fn为函数function的简写,main函数说明是函数的入口,类似C++和c语言,记住基本格式,打印println后面多了一个“!”,其他的类似c++的函数语言,后面用;进行语言结束。

没有意外是返回Hello world字符串

调用基本函数

fn Hello_world() ->&static str {let s="Hello world by keny!";return s;}fn main(){let Hello_world_str=Hello_world();println!("{}",Hello_world_str);}

还是Hello world的函数。定义了一个Hello_world的函数,函数直接返回字符串,通过main的函数进行调用这个定义的函数,运行结果是Hello world by keny

warning: function `Hello_world` should have a snake case name--> src/main.rs:1:4|
1 | fn Hello_world() ->&'static str {|    ^^^^^^^^^^^ help: convert the identifier to snake case: `hello_world`|= note: `#[warn(non_snake_case)]` on by defaultwarning: variable `Hello_world_str` should have a snake case name--> src/main.rs:8:9|
8 |     let Hello_world_str=Hello_world();|         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hello_world_str`warning: `hello_world` (bin "hello_world") generated 2 warningsFinished dev [unoptimized + debuginfo] target(s) in 0.69sRunning `target/debug/hello_world`
Hello world by keny!

Rust语法基础知识

变量

首先必须说明,Rust 是强类型语言,但具有自动判断变量类型的能力。这很容易让人与弱类型语言产生混淆。

如果要声明变量,需要使用 let 关键字。例如:

let a="abc";

不允许这样定义,说明a已经定义了字符串,后面有定义了float类型和int类型,实际是冲突的定义

a = "abc";
a = 4.56; 
a = 456;

检测的时候会提示

warning: unused variable: `a`--> src/main.rs:6:9|
6 |     let a=123.5;|         ^ help: if this is intentional, prefix it with an underscore: `_a`warning: unused variable: `a`--> src/main.rs:8:9|
8 |     let a=123;|         ^ help: if this is intentional, prefix it with an underscore: `_a`warning: unused variable: `a`--> src/main.rs:10:9|
10 |     let a=true;|         ^ help: if this is intentional, prefix it with an underscore: `_a`

当然,使变量变得"可变"(mutable)只需一个 mut 关键字。

let mut a=234;
a=567;

如果这样定义

let a=234;let a=456;会编译警告;“`#[warn(unused_variables)]` on by default”

重影(Shadowing)

    let a = 2;let a=a+1;let a=a*a;let a=a*a*a;
println!("{}",a);

重影与可变变量的赋值不是一个概念,重影是指用同一个名字重新代表另一个变量实体,其类型、可变属性和值都可以变化。但可变变量赋值仅能发生值的变化。

相关文章:

Rust冒泡排序

Rust冒泡排序 这段代码定义了一个名为 bubble_sort 的函数,接受一个可变的整数类型数组作为输入,然后使用嵌套的循环来实现冒泡排序。外部循环从数组的第一个元素开始迭代到倒数第二个元素,内部循环从数组的第一个元素开始迭代到倒数第二个元…...

麒麟信安服务器操作系统V3.5.2重磅发布!

9月25日,麒麟信安基于openEuler 22.03 LTS SP1版本的商业发行版——麒麟信安服务器操作系统V3.5.2正式发布。 麒麟信安服务器操作系统V3定位于电力、金融、政务、能源、国防、工业等领域信息系统建设,以安全、稳定、高效为突破点,满足重要行…...

密码技术 (1) - 对称密码

一. 前言 对称密码是指加密数据和解密数据使用的是相同的秘钥。发送者使用秘钥将加密后的数据发送给接受者,接收者收到数据后用相同的秘钥解密,恢复原始数据。 对称密码具有加密和解密快速的特点,适用于需要快速加密的场景,常用的…...

基于PYQT5的GUI开发系列教程【二】QT五个布局的介绍与运用

目录 本文概述 作者介绍 创建主窗口 水平布局 垂直布局 栅格布局 分裂器水平布局 分裂器垂直布局 自由布局 取消原先控件的布局的方法 尾言 本文概述 PYQT5是一个基于python的可视化GUI开发框架,具有容易上手,界面美观,多平台…...

Cadence PCB 焊盘和封装

封装(Packaging) 封装指的是在电子元件制造中将电子元件(例如集成电路芯片、电子元器件等)进行物理保护和连接的过程。封装通常涉及将电子元件封装到外部保护壳或包装中,以确保其正常运作、连接到电路板并保护它们免受环境因素的影响。 封装的主要目标包括以下几个方面:…...

正在等待操作系统重新启动。 请重新启动计算机以安装autocad 2024。

正在等待操作系统重新启动。 请重新启动计算机以安装autocad 2024。 这是刚启动Autodesk 2024产品就弹出的弹窗,重启之后启动还是有这个 一直阻止安装程序运行 出现问题的原因是安装包存在问题 使用正确的安装包即可解决这个问题 需要的朋友查看图片或者评伦取…...

Windows电脑显示部分功能被组织控制

目录 问题描述 解决方法 总结 问题描述 如果你的电脑出现以上情况,建议你使用我这种方法(万不得已) 解决方法 原因就是因为当时你的电脑在激活的时候是选择了组织性激活的,所以才会不管怎么搞,都无法摆脱组织的控…...

Django模板加载与响应

前言 Django 的模板系统将 Python 代码与 HTML 代码解耦,动态地生成 HTML 页面。Django 项目可以配置一个或多个模板引擎,但是通常使用 Django 的模板系统时,应该首先考虑其内置的后端 DTL(Django Template Language,D…...

Python 内置函数详解 (4) 类型转换

Python 内置函数 Python3.11共有75个内置函数,其来历和分类请参考:Python 新版本有75个内置函数,你不会不知道吧_Hann Yang的博客-CSDN博客https://blog.csdn.net/boysoft2002/article/details/132520234 函数列表 abs aiter all …...

SpringBoot之Web原生组件注入

文章目录 前言一、原生注解方式注入二、Spring方式注入三、切换web服务器与定制化总结 前言 注入Web原生Servlet、Filter、Listeber以及切换Web服务器。 一、原生注解方式注入 官方文档 - Servlets, Filters, and listeners Servlet注入: WebServlet(urlPattern…...

[每周一更]-(第64期):Dockerfile构造php定制化镜像

利用php官网镜像php:7.3-fpm,会存在部分插件缺失的情况,自行搭建可适用业务的镜像,才是真理 Dockerhub 上 PHP 官方基础镜像主要分为三个分支: cli: 没有开启 CGI 也就是说不能运行fpm。只可以运行命令行。fpm: 开启了CGI&#x…...

若依不分离+Thymeleaf select选中多个回显

项目中遇到的场景&#xff0c;亲测实用 表单添加时&#xff0c;select选中多个&#xff0c;编辑表单时&#xff0c;select多选回显&#xff0c;如图 代码&#xff1a; // 新增代码 <label class"col-sm-3 control-label">通道&#xff1a;</label><…...

OCX 添加方法和事件 HTML调用ocx函数及回调 ocx又调用dll VS2017

ocx添加方法 类视图 最后面的XXXXXlib 右键 添加 添加方法。 其它默认 添加事件 类视图 最后面的XXXXX 右键 添加 添加事件。 这样编译就ocx可以了。 #include <iostream> #include <string> #include <comutil.h>CMFCActiveXControlSmartPosCtrl* …...

苹果iPhone手机使用草柴返利APP查询领取淘宝天猫京东优惠券如何取消关闭粘贴商品链接时的弹窗提示?

使用苹果手机在淘宝或京东复制商品链接&#xff0c;到草柴APP粘贴时总是弹窗提示&#xff0c;如何关闭苹果手机粘贴弹窗的提示&#xff1f; 苹果手机如何关闭粘贴弹窗提示&#xff1f; 1、在草柴APP内&#xff0c;点击底部「我的」接着点击「系统设置」进入&#xff1b; 2、进…...

主机安装elasticsearch后无法登陆

问题描述 2023年7月31日11点02分&#xff0c;主机安装elasticsearch后无法登陆&#xff0c;通过后台查看主机宕机状态&#xff0c;CPU达到100%&#xff0c;按业务侧要求执行重启操作后发现主机黑屏无法正常进入系统&#xff0c;系统卡死。 2&#xff0e;原因分析 2.1通过故障…...

【面试题精讲】JavaSe和JavaEE的区别

“ 有的时候博客内容会有变动&#xff0c;首发博客是最新的&#xff0c;其他博客地址可能会未同步,认准https://blog.zysicyj.top ” 首发博客地址[1] 文章更新计划[2] 系列文章地址[3] 1. 什么是 JavaSE 和 JavaEE? JavaSE&#xff08;Java Platform, Standard Edition&#…...

React 全栈体系(十五)

第八章 React 扩展 一、setState 1. 代码 /* index.jsx */ import React, { Component } from reactexport default class Demo extends Component {state {count:0}add ()>{//对象式的setState/* //1.获取原来的count值const {count} this.state//2.更新状态this.set…...

【逆向】(c++)分析pe结构,拉伸pe结构,缩小pe结构

建议大家认认真真写一遍&#xff0c;收获蛮大的&#xff0c;是可以加深对pe结构的理解&#xff0c;尤其是对指针的使用&#xff0c;和对win32的一些宏的定义的理解和使用。 #include <windows.h> #include <iostream> #include <string>using namespace std…...

PyTorch实战:常用卷积神经网络搭建结构速览

目录 前言 常用卷积神经网络 1.AlexNet 2.VGGNet 3.GoogLeNet 4.ResNet 总览 前言 PyTorch可以说是三大主流框架中最适合初学者学习的了&#xff0c;相较于其他主流框架&#xff0c;PyTorch的简单易用性使其成为初学者们的首选。这样我想要强调的一点是&#xff0c;框架…...

排序算法之【快速排序】

&#x1f4d9;作者简介&#xff1a; 清水加冰&#xff0c;目前大二在读&#xff0c;正在学习C/C、Python、操作系统、数据库等。 &#x1f4d8;相关专栏&#xff1a;C语言初阶、C语言进阶、C语言刷题训练营、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 &#x1f44d…...

声明式调用 —— SpringCloud OpenFeign

Feign 简介 Spring Cloud Feign 是一个 HTTP 请求调用的轻量级框架&#xff0c;可以以 Java 接口注解的方式调用 HTTP 请求&#xff0c;而不用通过封装 HTTP 请求报文的方式直接调用 Feign 通过处理注解&#xff0c;将请求模板化&#xff0c;当实际调用的时候传入参数&#x…...

LuatOS-SOC接口文档(air780E)-- fota - 底层固件升级

fota.init(storge_location, len, param1)# 初始化fota流程 参数 传入值类型 解释 int/string fota数据存储的起始位置 如果是int&#xff0c;则是由芯片平台具体判断 如果是string&#xff0c;则存储在文件系统中 如果为nil&#xff0c;则由底层决定存储位置 int 数据存…...

第二章 Introduction

Armv8.4 架构引入了在安全状态下的虚拟化扩展。Arm SMMU v3.2 架构 [1] 增加了对安全流的第二阶段翻译的支持&#xff0c;以补充 Armv8.4 PE 中的安全 EL2 翻译体制。这些架构特性使得可以在安全状态下将彼此不信任的软件组件隔离开来。隔离是实现最小权限原则的机制&#xff1…...

WebGL 渲染三维图形作为纹理贴到另一个三维物体表面

目录 渲染到纹理 帧缓冲区对象和渲染缓冲区对象 帧缓冲区对象 帧缓冲区对象的结构 如何实现渲染到纹理 示例程序&#xff08;FramebufferObject.js&#xff09; 创建帧缓冲区对象&#xff08;gl.createFramebuffer&#xff08;&#xff09;&#xff09; gl.createFra…...

国庆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书行将售罄

国庆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书行将售罄 国庆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书行将售罄...

Source Insight 工具栏图标功能介绍

这篇文章并不介绍 Source Insight 的具体使用方法&#xff0c;这类教程网上有很多&#xff0c;这里只分析 Souce Insight 工具栏图标的功能。 文章目录 Source Insight 简介Souce Insight 工具栏文件操作新建&#xff08;CtrlN&#xff09;打开&#xff08;CtrlO&#xff09;保…...

模板与泛型编程-函数模板

本专栏由于缺少函数模板专题,我本以为这个不用讲解,但由于某些同学基础比较薄弱,特地在此补充一下。 函数模板的定义一般都在头文件中。 一、如何定义一个模板函数 下面是一个求和函数 template<typename T,typename U> auto Add(T a, U b) {return a + b; }int...

了解ActiveMQ、RabbitMQ、RocketMQ和Kafka的特点

ActiveMQ ActiveMQ是一种基于JMS&#xff08;Java消息服务&#xff09;规范的消息中间件&#xff0c;由Apache基金会开发和维护 核心组件和特点&#xff1a; Broker&#xff08;代理&#xff09;&#xff1a;ActiveMQ的核心组件是Broker&#xff0c;它负责接收、存储和路由消息…...

第七章 用户和组管理

7.1 Linux中的用户和组的分类 用户类别 超级用户&#xff08;0&#xff09; root 系统用户(1-999) 一般用户(1000-60000) 组类别 管理组 root 基本组&#xff08;默认组/主组&#xff09; 附加组&#xff08;额外组&#xff09; 7.2 用户管理 7.2.1 添加新用户 语法 useradd 【…...

给奶牛做直播之三

​一、前言 上一篇给牛奶做直播之二 主要讲用RTMP搭建点播服务器&#xff0c;整了半天直播还没上场&#xff0c;今天不讲太多理论的玩意&#xff0c;奶牛今天放假了也不出场&#xff0c;就由本人亲自上场来个直播首秀&#xff0c;见下图&#xff0c;如果有兴趣的话&#xff0…...

学校网站建设重要性/seo学习网站

早晨起床时间&#xff1a;6:10 晚上休息时间&#xff1a;23:31 全天处理事件&#xff1a;1.收尾电子时钟软件程序版本2.0。 处事经验总结&#xff1a;暂无。 人生感悟&#xff1a;性格决定行为。 其它&#xff1a;这段时间还是感觉比较迷茫&#xff0c;在社会上经历一段时间后&…...

蛋糕网站建设方案/如何被百度收录

Ruoyi 若依项目模板创建多级菜单加载失败问题处理以及路由懒加载失败时将组件更换为notfound src/store/modules/route.js /* 遍历后台传来的路由字符串&#xff0c;转换为组件对象 */ function filterAsyncRouter(asyncRouterMap, isRewrite false/* 是否重写服务端数据结构 …...

网站开发域名/站长工具ip地址查询

这个例子显示了如何使用QPainter渲染一个简单的QWindow。 值得学习的内容 <QtGui>头文件 #include <QtGui>就可以使用Qt GUI模块中的所有类&#xff0c;当然&#xff0c;愿意的话也可以分开各个include。 QBackingStore与绘制 用于管理基于QPainter的图形的窗口后缓…...

构建企业网站/微信广告推广平台

批量生成账户信息&#xff0c;产生的账户由sina.com结尾&#xff0c;长度由用户输入&#xff0c;产生多少条也由用户输入&#xff0c;用户名不能重复&#xff0c;用户名必须由大写字母、小写字母和数字组成。 1 def Users(num,len): # num产生多少条信息&#xff0c;len账号的长…...

四川建设网站/资源搜索器

ADO特有的流化和还原 {*******************************************************}{ }{ ADO 数据流化 }{ }{ 版权所有 (C) 2013 YangYxd }{ }{*******************************************************} { ado数据集流化Rs: TADOQuery;M: TMemoryStream;Rs.SQL.Text : Select…...

站长工具seo诊断/免费推广的app有哪些

2019独角兽企业重金招聘Python工程师标准>>> java中final关键字通常指“这是无法改变的”。 可能使用final的三种情况&#xff1a;数据、方法、类。 1. final 数据 对于基本类型&#xff0c;final使数值恒定不变&#xff1b; 对于引用类型&#xff0c;final使引用…...