免费做试用的网站商河县建设局网站

pingmian/2025/10/8 3:06:36/文章来源:
免费做试用的网站,商河县建设局网站,国家重点项目建设库网站,企业网站建设长沙主要说一下冒泡排序的一些关键地方的个人理解#xff0c;比如算法思想#xff0c;两个循环的作用意义#xff0c;中间循环变量范围的确定等。 原理#xff1a;比较两个相邻的元素#xff0c;将值大的元素交换至右端。思路#xff1a;依次比较相邻的两个数#xff0c;将小…主要说一下冒泡排序的一些关键地方的个人理解比如算法思想两个循环的作用意义中间循环变量范围的确定等。 原理比较两个相邻的元素将值大的元素交换至右端。思路依次比较相邻的两个数将小数放在前面大数放在后面。即在第一趟首先比较第1个和第2个数将小数放前大数放后。然后比较第2个数和第3个数将小数放前大数放后如此继续直至比较最后两个数将小数放前大数放后。重复第一趟步骤直至全部排序完成。 第一趟比较完成后最后一个数一定是数组中最大的一个数所以第二趟比较的时候最后一个数不参与比较第二趟比较完成后倒数第二个数也一定是数组中第二大的数所以第三趟比较的时候最后两个数不参与比较依次类推每一趟比较次数-1 ……举例说明要排序数组int[] arr{6,3,8,2,9,1}; 第一趟排序 第一次排序6和3比较6大于3交换位置 3 6 8 2 9 1 第二次排序6和8比较6小于8不交换位置3 6 8 2 9 1 第三次排序8和2比较8大于2交换位置 3 6 2 8 9 1 第四次排序8和9比较8小于9不交换位置3 6 2 8 9 1 第五次排序9和1比较9大于1交换位置 3 6 2 8 1 9 总共进行了5次比较 排序结果 3 6 2 8 1 9 第二趟排序 第一次排序3和6比较3小于6不交换位置3 6 2 8 1 9 第二次排序6和2比较6大于2交换位置 3 2 6 8 1 9 第三次排序6和8比较6大于8不交换位置3 2 6 8 1 9 第四次排序8和1比较8大于1交换位置 3 2 6 1 8 9 总共进行了4次比较 排序结果 3 2 6 1 8 9 第三趟排序 第一次排序3和2比较3大于2交换位置 2 3 6 1 8 9 第二次排序3和6比较3小于6不交换位置2 3 6 1 8 9 第三次排序6和1比较6大于1交换位置 2 3 1 6 8 9 总共进行了3次比较 排序结果 2 3 1 6 8 9 第四趟排序 第一次排序2和3比较2小于3不交换位置2 3 1 6 8 9 第二次排序3和1比较3大于1交换位置 2 1 3 6 8 9 总共进行了2次比较 排序结果 2 1 3 6 8 9 第五趟排序 第一次排序2和1比较2大于1交换位置 1 2 3 6 8 9 总共进行了1次比较 排序结果 1 2 3 6 8 9 最终结果1 2 3 6 8 9 6 个数。比了5趟。第一趟比了5次第二趟比了4次第三趟比了3次第四趟比了2次第五趟比了1次。 6 第 i 趟 -------------- 比 i 次 ----------------- i从0开始规律 1 ------------------------5 -------------------------- n-i-1 2 ----------------------- 4 ---------------- 3 ------------------------3 --------------- 4 ------------------------2 -------------- 5 ------------------------1 -------------- 由此可见N个数字要排序完成总共进行N-1趟排序每i趟的排序次数为(N-i)次所以可以用双重循环语句外层控制循环多少趟内层控制每一趟的循环次数即 for(i 0; i n-1; i) //n是数组长度即元素个数 for(j 0; j n-i-1; j) 外层循环的作用是 提取出目前未排序数组中最大的数放置于已排数据的左边。也就是说我们第一次外层循环是把最大数的位置交换到数组的最右边第二次外层循环是把次大数交换到数组的次右边依次类推。 内层循环的作用是 实现我们想要的大数下沉的过程。每次比较的是相邻两个数据所以数组的长度n我们只需要做 n-1 次的比较就可以实现大数下沉而 之前循环已经沉淀的大数并不需要再进行 排序了。 很清楚的看到N个数字要排序完成总共进行N-1趟排序 为什么外层循环判断条件是in-1呢 n 个数字总共需要 n-1 趟排序i n-1外层循环变量 i 从 0 到 n-1 前一位 正好是 n-1 次。 为什么内层循环判断条件是j n-i-1呢 这要从冒泡排序原理说起冒泡排序每循环排序一次,就把最大的一个数排在了最右边默认升序排每一次排序都是在上一次排序的基础上再排序比如第2次排序之后i已经成2了第三次排序是要在第二次的基础上在进行排序而第二次排序后就已经把两个最大的数已经放到最后了所以第三次排序就不需要在去比他俩就得把这个“2“减掉只需要循环n-i次此时的i是2为什么-i之后还要-1呢 这是因为在内层循环的判断中是把当前值和后面一个值做比较的。如果不减1则当循环到最后一个值的时候再取下一个值就取不到就需要额外的操作或者抛出数组下标越界的异常。 其实内层的 jn-i-1 这个范围的确定 让人纠结它主要有两种理解方式 1 就是标准解释 上述的防止数组下标越界比如n[] {5, 22, 7, 42, 23}个数n5i现为2n-i3i为2即进行第3趟两个数已经确定好只需要比较前三个数了而这只需要比较2次即n-i(为2)-12。如果不减一这里就是n-i(为2) 3比三次这显然是错的。就是正常是 if n(0)n(1) if n(1)(2) 这是正确的不正确时5-23 j从0到3 得比3次 if n(0)n(1) if n(1)(2) if n(2)(3) 这就比错了 这都把 确定好的倒数第二大的数再给比较这就是错了。就成乐下表越界了。2 每趟的比较中都是n-1次每趟中都是比总共这次要比的数的个数减一次再加上要把i这已经确定的数的个数减去即就是 j-i-1。实际上这也是n-in把来的i减去剩下的待排序的数共有多少个他们的个数再减去一就是他们这些剩下的数需要比较的次数了这个跟网上说的数组是从下标0开始没啥关系下标从0或1开始影响的是内层循环的比较是0就直接引用是1就得n[i-1]。至于说的这个从0开始的说法则它根本上也是想说防止下标越界。 3 第 i 趟的比较比 n-i 次。正常来说 i 是要从1 开始的但是i时间给定了从0开始所以每趟比较次数开始从i为0开始所以每回把一减掉。意思 n-i-1 随着i开始的起步从1往0退一个所以n-i-1 中的 -1 也就是随着往前退一个。 至于算法优化什么的暂时不考虑这里只简单说明了算法中几个关键的点。 个人学习感悟如有错误还请指正。 附一些讲冒泡比较好的说的文章 https://blog.csdn.net/kelinfeng16/article/details/84034386 https://www.cnblogs.com/shen-hua/p/5422676.html

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

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

相关文章

旅行社网站建设需求分析临沂网站设计

描述 在 Spring Boot 中实现状态机,通常使用 Spring State Machine 框架进行实现。该框架可以帮助我们定义、创建和管理复杂的状态机。 接下来给出一个demo,说明如何使用 Spring State Machine 框架实现状态机。 假设我们需要实现一个简单的订单状态机&a…

网站首页收录突然没有了html网站自带字体怎么做

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析: (1)最小公倍数输入的两个数之积除于它们的最大公约数,关键是求出最大公约数; (2)求最大公约数用辗…

建设公司网站编号江都住房和建设局网站

目录 前言 一、技术栈 二、系统功能介绍 员工信息管理 预案信息管理 预案类型统计 事件类型管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍…

北京西站在几环校友网站建设

前端工程化是使用软件工程的方法来单独解决前端的开发流程中模块化、组件化、规范化、自动化的问题,其主要目的为了提高效率和降低成本。 前端工程化实现技术栈 前端工程化实现的技术栈有很多,我们采用ES6nodejsnpmViteVUE3routerpiniaaxiosElement-plus组合来实现 ECMAScri…

自己做的网站视频播放不了中国上市网络公司排名

https://www.cnblogs.com/qiankun-site/p/5886673.html 1、此监听器主要用于解决java.beans.Introspector导致的内存泄漏的问题 2、此监听器应该配置在web.xml中与Spring相关监听器中的第一个位置(也要在ContextLoaderListener的前面)3、JDK中的java.beans.Introspector类的用途…

广州市公司网站建设足球比赛直播平台app

一、Mysql基本介绍 当谈论MySQL时,通常指的是一个流行的开源关系型数据库管理系统(RDBMS)。MySQL是由瑞典的开发者在1995年创建的,后来被Sun Microsystems收购,最终成为Oracle Corporation的一部分。以下是关于MySQL的…

建站成本深圳网络营销推广案例

apple mac 下使用机械键盘的办法,键盘映射工具软件,apple mac Mechanical keyboard 想在苹果电脑 mac 系统下使用 机械键盘,大部分机械键盘不是为mac设计的,所以需要用软件做一下键盘映射。 推荐使用这个:https://pqrs…

手机网站首页怎么做教育类网站 前置审批

#-*- coding: utf-8 -*-""" 思路 核心:每次落稳之后截图,根据截图算出棋子的坐标和下一个块顶面的中点坐标,根据两个点的距离乘以一个时间系数获得长按的时间识别棋子:靠棋子的颜色来识别位置,通过截图…

网页制作培训网站辽宁注册公司网站

当玩家或用户在启动某些游戏和应用程序时,可能会遭遇到一个系统错误提示:“由于找不到xinput1_3.dll,无法继续执行代码l”。这种情况通常指出系统中DirectX组件存在问题。以下我们将介绍几种常用的解决方法,并提供详细的操作步骤。 一.找不到…

合肥专业做淘宝网站建设wordpress 下拉菜单插件

Spring 是线程安全的,支持多线程并发调用。但在某种特殊情况下,使用 BeanFactory 的 getBean 方法,我成功拿到了未经初始化的 Bean(是BUG,亦或是出于某种原因考虑的特性?)。 一、获取到的 Bean 为什么未初始化? 通过 getBean 获取到未经过初始化的 Bean 需要满足如下…

福州网站建设招商娄底企业网站建设公司

索引的设计原则 索引覆盖是什么: 索引(在MySQL中也叫做“键(key)”) 是存储引擎用于快速找到记录的一种数据结构。这是索引的基本功能。 索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,索引…

在线免费视频网站推广平面广告设计用什么软件

学习目的: (1) 熟悉SPI接口和它的读写时序; (2) 复习Verilog仿真语句中的$readmemb命令和$display命令; (3) 掌握SPI接口写时序操作的硬件语言描述流程(本例仅…

python 做网站开发吗做网站如何选择数据源

出现原因: 此处的offset的值表示的是盒子模型经过计算后的实际偏移量,通常是margin及定位偏移量之和(flex布局导致的偏移也会计算在内)。在此处也无需消除。 解决办法: 父元素设置宽高。设置margin为负数&#xff0…

做租房信息网站淘宝怎么优化关键词排名

区别: 1,Resource(JSR-250标准注解,推荐使用它来代替Spring专有的Autowired注解) 2,Spring 不但支持自己定义的Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是Resourc…

广西建设厅考试网站博客网站开发报告文库

OpenCV7-copyTo截取ROI copyTo截取感兴趣区域 copyTo截取感兴趣区域 有时候,我们只对一幅图像中的部分区域感兴趣,而原图像又十分大,如果带着非感兴趣区域一次处理,就会对程序的内存造成负担,因此我们希望从原始图像中…

两学一做学习网站更多标签的适用场景

如果你的操作系统是 Windows,而你想要连接 Linux 服务器相互传送文件,那么你需要一个简称 SSH 的 Secure Shell 软件。实际上,SSH 是一个网络协议,它允许你通过网络连接到 Linux 和 Unix 服务器。SSH 使用公钥加密来认证远程的计算…

代理注册seo是什么职业

问题描述   JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,可以用来描述半结构化的数据。JSON 格式中的基本单元是值 (value),出于简化的目的本题只涉及 2 种类型的值:   * 字符串 (string):字符串是由双引号…

山西省建设执业资格注册中心网站软件制作公司排名

1.介绍和基础操作 Python中的元组(Tuple)是不可变有序序列,可以容纳任意数据类型(包括数字、字符串、布尔型、列表、字典等)的元素,通常用圆括号() 包裹。与列表(List)类似&#xff…

专业网站设计服务在线咨询义乌企业网站

FROM : http://blog.ityao.com/archives/581 如果想用Flash/Flex监听浏览器的关闭事件,可以通过JavaScript的window.onbeforeunload事件进行监听然后JS调用Flash中的函数。在swf所在页面的JavaScript中添加如下代码JS中代码:(这里设定swf文件…

破解网站后台账号密码上海做网站的公司多少钱

也许有些人是学C出身,对于Java几乎不了解。一时心血来潮想学学android开发,于是下载了Eclipse,安装了SDK,有模有样的学习起来。也许是懒惰了,对于java一直总是提不起精神。于是确定使用DreamweaverJquery mobilePhoneg…