冒泡排序、选择排序、菱形

冒泡排序、选择排序、菱形

文章目录

  • 一、冒泡排序
  • 二、选择排序
  • 三、菱形


一、冒泡排序

思路:
外层(第一层)循环控制循环次数,和业务无关
内层(第二层)循环用于比较相邻的2个值的大小,根据小到大或者大到小进行2值替换

let arr: number[] = [1, 32, 34, 56, 11, 3, 0,10]; // 我是用的TS用法,可以根据其他语言自行调整,业务逻辑一致
for (let i: number = 0; i < arr.length - 1; i++) { // 第一层for (let r: number = 1; r <= arr.length - 1 - i; r++) { // 第二层if (arr[r - 1] > arr[r]) {// 2值替换const three = arr[r]arr[r] = arr[r - 1]arr[r - 1] = three}}   // 第二层结尾}  // 第一层结尾

二、选择排序

思路: 从第一个依次进行和后面的每一个比较一次,符合小到大或者大到小的排序就进行替换

let arr: number[] = [1, 32, 34, 56, 11, 3, 0,10]; // 我是用的TS用法,可以根据其他语言自行调整,业务逻辑一致
for (let i: number = 0; i < arr.length - 1; i++) { // 第一层for (let r: number = i+1; r < arr.length ; r++) { // 第二层if (arr[i] > arr[r]) {// 2值替换const three = arr[r]arr[r] = arr[i]arr[i] = three}}   // 第二层结尾}  // 第一层结尾

三、菱形

解题思路:
思路一:根据整体分析,看行数和列数,并计算中间值,和查看空格和*号规律,(这里使用是这个见例代码)
思路二: 将菱形分为2部分(自最大位置进行分割,上和下,查看空格规律,查看上一半规律和下一半规律,分为3部分,完成上半部分图形,同理完成下半部分)
在这里插入图片描述

// 双重循环打印菱形
let row: number = 19
// 中间值
let mid: number = 0
// 获取菱形最大长度
let maxlen: number = 0
if (row % 2 !== 0) {mid = Number.parseInt(row / 2 + '') + 1;maxlen = 2 * mid - 1console.log(`中间值${mid},最大列数:${maxlen}`);// 行for (let i: number = 1; i <= row; i++) {let str: string = ''if (i <= mid) {// 计算列 // 空格: mid-ifor (let s: number = 1; s <= mid - i; s++) {str += ' '}// *: 2n-1for (let e: number = 1; e <= 2 * i - 1; e++) {str+='*'}} else{//空格 i-mid for (let s: number = 1; s <= i-mid; s++) {str += ' '}// *: maxlen - 2*(i-mid)for (let e: number = 1; e <= maxlen - 2*(i-mid); e++) {str+='*'}}console.log(str);}
} else {console.log('不能构成菱形');
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/39394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】语法入门

文章目录 Python 基础语法&#xff1a;打印和变量打印和变量的基本语法打印变量 变量操作变量的命名规则打印和变量的应用场景示例&#xff1a;基本计算器 Python 基础语法&#xff1a;列表推导式列表推导式的基本语法基本示例带条件的列表推导式列表推导式的应用场景 Python 基…

B站、小红书“崩”了!阿里云紧急回应

7月2日&#xff0c;“B站崩了”“小红书崩了”冲上微博热搜&#xff01;据悉&#xff0c;“崩了”的原因是阿里云上海服务出现异常。 B站App无法使用浏览历史关注等内容&#xff0c;消息界面、更新界面、客服界面均不可用&#xff0c;用户也无法评论和发弹幕&#xff0c;视频评…

java byte[] 数据类型介绍

在Java中&#xff0c;byte[]&#xff08;字节数组&#xff09;是一种用于存储一系列字节数据的数组类型。它常用于处理二进制数据&#xff0c;例如文件读写、网络传输、加密解密等。每个字节&#xff08;byte&#xff09;是一个8位的有符号整数&#xff0c;取值范围为-128到127…

鸿蒙开发设备管理:【@ohos.multimodalInput.touchEvent (触摸输入事件)】

触摸输入事件 设备上报的触屏事件。 说明&#xff1a; 本模块首批接口从API version 9开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import {Action,ToolType,SourceType,Touch,TouchEvent} from ohos.multimodalInput.touchEvent;…

2024年江西省研究生数学建模竞赛A题交通信号灯管理论文和代码分析

经过不懈的努力&#xff0c;2024年江西省研究生数学建模竞赛A题论文和代码已完成&#xff0c;代码为A题全部问题的代码&#xff0c;论文包括摘要、问题重述、问题分析、模型假设、符号说明、模型的建立和求解&#xff08;问题1模型的建立和求解、问题2模型的建立和求解、问题3模…

自研数据迁移扩容服务,通过全量同步、增量同步、数据校验等步骤实现了数据分库分表动态迁移和扩容。

自研数据迁移扩容服务是一个复杂的任务&#xff0c;涉及到数据的全量迁移、增量同步、数据校验以及动态迁移和扩容策略。以下是实现这一服务的关键步骤和考虑因素&#xff1a; ### 1. 全量同步 - **定义数据源和目标**&#xff1a;明确全量数据迁移的源数据库和目标数据库。 -…

【信息系统项目管理师知识点速记】组织通用管理:流程管理

23.2 流程管理 通过流程视角能够真正看清楚组织系统的本质与内在联系,理顺流程能够理顺整个组织系统。流程是组织运行体系的框架基础,流程框架的质量影响和决定了整个组织运行体系的质量。把流程作为组织运行体系的主线,配备满足流程运作需要的资源,并构建与流程框架相匹配…

【C++】C++中的三目运算符

目录 什么是三目运算符 三目运算符赋值 三目运算符用于返回值判断 什么是三目运算符 三目运算符比较好理解&#xff0c;是一种用来做比较判断的运算表达格式&#xff0c;可以用于简单的判断&#xff0c;只需要一行代码就可以实现&#xff0c;下面通过几个例子介绍下&#xf…

养猫家庭如何正确除猫毛?希喂、范罗士、米家浮毛空气净化器分享

作为一名6年资深铲屎官&#xff0c;我发现养猫已经成为年轻人的潮流&#xff0c;很多铲屎官跟风养了猫咪。但是她们并不知道撸猫虽然很快乐&#xff0c;但是猫咪的体味和猫浮毛也会让人很头疼。特别是宠物排泄物的气味&#xff0c;经常搞卫生很多人接受不了。这样导致很多人养一…

12寸FAB 信息部内外工作职责的一些划分构思

FAB的信息部&#xff0c;也常被称为IT部门或信息化部门&#xff0c;承担着确保整个制造工厂的信息技术系统高效、安全运行的职责。以下是 一、FAB信息部的一些关键部门职责&#xff1a; 1. 战略规划&#xff1a;制定和实施信息技术战略&#xff0c;以支持FAB的长期业务目标和增…

贪心算法算法,完全零基础小白教程,不是计算机的都能学会!超详解

目录 一、基本概念 二、举几个例子&#xff0c;便于理解 1、找零问题 2、最小路径和 3、背包问题 1&#xff09;只考虑体积的贪心策略&#xff1a; 2&#xff09; 只考虑价值的贪心策略&#xff1a; 三、贪心策略的特点 四、贪心策略证明 四、如何学习贪心 五、例题…

助力构建新型电力系统自主可控实时底座

近日&#xff0c;2024亚洲新型电力系统及储能展览会&#xff06;亚洲新型电力及储能论坛会在广州广交会展馆圆满落下帷幕&#xff01;科东软件携多款电力产品亮相展会,并在2024亚洲新型电力及储能论坛发表《“鸿道Intewell操作系统助力构建新型电力系统自主可控实时底座”》的主…

ArcTs布局入门03——层叠布局(Stack)

如果你也对鸿蒙开发感兴趣&#xff0c;加入“Harmony自习室”吧&#xff01; 扫描下面的二维码关注公众号。 1、概述 叠布局&#xff08;StackLayout&#xff09;用于在屏幕上预留一块区域来显示组件中的元素&#xff0c;提供元素可以重叠的布局。层叠布局通过Stack容器组件实…

终身免费的Navicat数据库,不需要破解,官方支持

终身免费的Navicat数据库&#xff0c;不需要破解&#xff0c;官方支持 卸载了Navicat&#xff0c;很不爽上干货&#xff0c;Navicat免费版下载地址 卸载了Navicat&#xff0c;很不爽 公司不让用那些破解的数据库软件&#xff0c;之前一直使用Navicat。换了几款其他的数据库试了…

代码随想录-Day45

198. 打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个…

20240702在飞凌OK3588-C开发板上通过HDMI OUT输出USB3.0接口的热像仪的预览图像

20240702在飞凌OK3588-C开发板上通过HDMI OUT输出USB3.0接口的热像仪的预览图像 2024/7/2 18:19 rootok3588:/# rootok3588:/# rootok3588:/# lsusb Bus 005 Device 001: ID 1d6b:0002 Bus 003 Device 001: ID 1d6b:0001 Bus 001 Device 001: ID 1d6b:0002 Bus 006 Device 00…

零拷贝技术 Zero-Copy

1. 零拷贝概念 零拷贝&#xff1a;在数据传输过程中&#xff0c;减少CPU介入的数据拷贝次数&#xff0c;提高效率。 2. Java中的零拷贝 数据从内核拷贝到JVM堆外内存&#xff0c;避免拷贝到JVM堆。Java NIO中的零拷贝主要通过MappedByteBuffer和FileChannel.transferTo()实现…

将excel表格转换为element table(上)

最近有个功能需要将excel展示到html 界面里面&#xff0c;看是简单的一个需求也是需要费尽心思才完得成 原始数据 想要把excel 读取出来&#xff0c;于是使用xlsl的插件 npm i xlsx通过插件可以获取到已经分析好的数据 然后使用sheet_to_html将数据转换为html 再使用v-htm…

wireshark与tcpdump使用

文章目录 wireshark与tcpdump使用tcpdump过滤expression表达式wireshark的显示过滤器tcpdump语法wireshark与tcpdump使用 tcpdump过滤 官网:http://www.tcpdump.org 需要安装libpcap # 示例 tcpdump -vv -i any port 80 or port 443 -s0 -w /home/tkg.pcapexpression表达式…

Xorbits inference操作实战

1.操作环境 序号软件版本备注1Windows1.版本&#xff1a;Windows 10 专业版2.版本号&#xff1a;21H23.操作系统内部版本&#xff1a;19044.18892Docker Desktop4.24.2 (124339)3WSLUbuntu 22.04 LTS4Python3.105CUDA12.16Dify0.6.6 Xorbits inference 是一个强大且通用的分布…