加强网站建设的请示英文建站平台

news/2025/10/7 15:29:57/文章来源:
加强网站建设的请示,英文建站平台,网站效果用什么软件做,苏州网站搭建公司本专栏内容为#xff1a;八大排序汇总 通过本专栏的深入学习#xff0c;你可以了解并掌握八大排序以及相关的排序算法。 #x1f493;博主csdn个人主页#xff1a;小小unicorn ⏩专栏分类#xff1a;八大排序汇总 #x1f69a;代码仓库#xff1a;小小unicorn的代码仓库… 本专栏内容为八大排序汇总 通过本专栏的深入学习你可以了解并掌握八大排序以及相关的排序算法。 博主csdn个人主页小小unicorn ⏩专栏分类八大排序汇总 代码仓库小小unicorn的代码仓库 关注我带你学习编程知识 无论你学习哪种编程语言在学到循环和数组时通常都会介绍一种排序算法来作为例子而这个算法一般就是冒泡排序。并不是它的名称很好听而是说这个算法的思路最简单最容易理解。因此哪怕大家可能都已经学过冒泡排序了我们还是从这个算法开始我们的排序之旅。 冒泡排序 最简单排序的实现冒泡排序算法冒泡排序优化冒泡排序复杂度分析 最简单排序的实现 冒泡排序(Bubble Sort)是一种交换排序它的基本思想是两两比较相邻记录的关键字如果反序则交换直到没有反序的记录为止。 冒泡的实现在细节上可以有很多种变化我们将分别就3种不同的冒泡实现代码来讲解冒泡排序的思想。这里我们就先来看看比较容易理解的一段。 注意排序用到的结构与函数在第一部分排序的基本概念与分类。我们已经实现。详情请点击八大排序一--------排序的基本概念与分类 //对顺序表L作交换排序冒泡排序初级版本 void BubbleSort0(SqList* L) {int i 0, j 0;for (i 1; i L-length; i){for (j i1; j L-length; j){if (L -r[i] L-r[j]){swap(L, i, j); //交换L-r[i]与r-[j]}}} } 这段代码严格意义上说不算是标准的冒泡排序算法因为它不满足“两两比较相邻记录”的冒泡排序思想它更应该是最简单的交换排序而已。它的思路就是让每一个关键字都和它后面的每一个关键字比较如果大则交换这样第一位置的关键字在一次循环后一定变成最小值。 如下图所示假设我们待排序的关键字序列是{9,1,5,8,3,7,4,6,2} 当i1时9与1交换后在第一位置的1与后面的关键字比较都小因此它就是最小值。 当i2时第二位置先后由9换成5换成3换成2完成了第二小的数字交换。后面的数字变换类似这里不再介绍。 这应该算是最容易写出的排序代码了不过这个简单易懂的代码却是有缺陷的。观察后发现在排序好1和2的位置后对其余关键字的排序没有什么帮助(数字3反而还被换到了最后一位)。也就是说这个算法的效率是非常低的。 冒泡排序算法 我们来看看正宗的冒泡算法有没有什么改进的地方。 //对顺序表L作冒泡排序 void BubbleSort(SqList* L) {int i 0, j 0;for (i 1; i L-length; i){for (j L-length-1; j i; j--) //j从后往前循环{if (L-r[i] L-r[j1]) //若前者大于后者{swap(L, i, j1); //交换L-r[i]与r-[j1]的值}}} } 依然假设我们待排序的关键字序列是{9,1,5,8,3,7,4,6,2} 当i1时变量j由8反向循环到1逐个比较将较小值交换到前面直到最后找到最小值放置在了第1的位置。 如下图所示当i1,j8时我们发现62因此交换了它们的位置j7时42所以交换……直到2时因为12所以不交换。j1时91交换最终得到最小值1放置第1的位置。 事实上在不断循环的过程中除了将关键字1放到第1的位置我们还将关键字2从第9位置提到了第3的位置显然这一算法比前面的要有进步在上十万条数据的排序过程中这种差异会体现出来。图中较小的数字如同气泡般慢慢浮到上面因此就将此算法命名为冒泡算法。 后面的数字变换就很简单这里就不在叙述了。 冒泡排序优化 这样的冒泡程序是否还可以优化呢答案是肯定的。试想一下如果我们待排序的序列是{2,1,3,4,5,6,7,8,9}也就是说除了第1和第2的关键字需要交换外别的都已经是正常的顺序。 当i1时交换了2和1此时序列已经有序但是算法仍然不依不饶地将i29以及每个循环中的循环都执行了一遍尽管并没有交换数据但是之后的大量比较还是大大地多余了如下图所示。 当i2时我们已经对9与88与7…3与2作了比较没有任何数据交换这就说明此序列已经有序不需要再继续后面的循环判断工作了。为了实现这个想法我们需要改进一下代码增加一个标记变量flag来实现这一算法的改进。 //对顺序表L作冒泡排序改进版本 void BubbleSort(SqList* L) {int i 0, j 0;status flag 1; //用flag进行标记for (i 1; i L-length flag; i) //若flag为1则有效数据交换{flag 0;for (j L-length-1; j i; j--) //j从后往前循环{if (L-r[i] L-r[j1]) //若前者大于后者{swap(L, i, j1); //交换L-r[i]与r-[j1]的值flag 1; //如果有数据交换则flag为1}}} }代码改动的关键就是在变量的for循环中增加了对flag是否为1的判断。 经过这样的改进冒泡排序在性能上就有了一些提升可以避免已经有序的情况下的无意义循环判断。 冒泡排序复杂度分析 分析一下它的时间复杂度。 当最好的情况也就是要排序的表本身就是有序的那么我们比较次数根据最后改进的代码可以推断出就是n-1次的比较没有数据交换时间复杂度为O(n)。 当最坏的情况即待排序表是逆序的情况此时需要比较之 ∑ i 2 n ( i − 1 ) 1 2 3 … ( n − 1 ) n ( n − 1 ) / 2 \sum_{i2}^n (i-1)123…(n-1)n(n-1)/2 ∑i2n​(i−1)123…(n−1)n(n−1)/2次并作等数量级的记录移动。因此总的时间复杂度为O(n2)。

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

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

相关文章

网站开发 调试天津建设工程信息网怎么登录

转自:http://www.blogjava.net/lukangping/archive/2010/08/01/327693.html 记得在当时学习uml总是不好分清聚合与组合的关系,找工作时特地复习了这块的内容,结果正巧被面试官问道,这两天又在搞这块的内容,对聚合与组合…

网站备案网站前置审批网站建设中的安全问题

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 前言 MongoDB是一个基于分布式文件存储的数…

Success of Europa

The Success of Europa dues to her geographic diversity and its close to the largest land, Asia so it can "pirate".and its a \(\Delta\) just like India, not the ☽ like Arabs or J.The major ci…

2025多校冲刺CSP模拟赛4 总结

比赛:2025多校冲刺CSP模拟赛4 日期:\(25.10.07\),场地:\(\text{accoder}\),排名:\(42/114\) 估分:\(100+100+28+25=253\) 终分:\(100 + 100+28+29 =257\) 应该得分:\(100+100+28+71=299\) 失分 \(T_4\) 纯暴力…

多路归并、败者树、置换-选择排序、最佳归并树

目录一、多路归并二、败者树三、置换-选择排序四、最佳归并树一、多路归并 1. 基本概念 多路归并是外部排序第二阶段的核心操作。它将多个已经排序好的序列(称为“归并段”或“顺串”)合并成一个更大的有序序列。这里…

实用指南:shiro、struts2、weblogic特征流量分析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站建设估价门户网站建设相关需求

目录 1.Web页面检查器 2.客户端-代理抓包 3.自动化测试工具 3.1接口自动化测试 3.2webUI自动化测试 3.3客户端UI自动化测试 4.手机模拟器测试工具 5.阿里云测试工具 1.Web页面检查器 F12查看html页面,查看页面大小和加载时间 2.客户端-代理抓包 Charles&a…

看vue文档记录(未整理)

简介 | Vue.js.vue文件又称单文件组件,里面包含基础三件套 为什么两个导入一个用花括号一个不用<div id="app"></div> <script type="module"> import { createApp } from vu…

Spring5笔记

Spring 常用依赖org.springframework spring-webmvc 5.2.0.RELEASE-- 注解 1.@Resource(常用)自动装配,通过类型,名字可通过加name属性精细 寻找 2.@Autowired自动装配,通过名字,类型,如果不能自动装配则需要@Qua…

50天50个前端项目 - HTML/CSS和JavaScript实战合集

这是一个包含50个前端实战项目的完整合集,涵盖动画效果、交互组件、实用工具等多种类型。每个项目都使用纯HTML、CSS和JavaScript实现,适合前端开发者学习和参考。50天50个前端项目 - HTML/CSS和JavaScript实战合集 …

广东省住房城乡建设厅网站商城小程序价格

当我做了一个实体类&#xff0c;字段为del_flag的逻辑删除字段&#xff0c;要通过这个字段控制数据库中的数据逻辑删除。 重写mapper中的deleteById&#xff0c; 先按id查出数据&#xff0c;在更新此数据中的del_flag字段为1&#xff0c;调用update方法更新数据。 这种方式我…

【笔记】用命令手动下载并安装 tokenizers 库.whl文件(Python 3.12+) - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【办公类-48-04】202506每月电子屏台账汇总成docx-5(问卷星下载5月范围内容,自动获取excel文件名,并转移处理) - 实践

【办公类-48-04】202506每月电子屏台账汇总成docx-5(问卷星下载5月范围内容,自动获取excel文件名,并转移处理) - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !impor…

党徽

☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░…

网站开发的概要设计模板抖音服务商平台

文章目录二、安装步骤1. 创建数据库2. 修改配置文件3. 调整数据库驱动4. 修改配置中心二、 启动和验证2.1. 启动nacos2.2. 启动TC Server2.3. 启动第二个节点2.4. 验证高可用二、安装步骤 1. 创建数据库 创建名称为ry_seata的数据库,并初始化ry_seata_20210128.sql脚本 2.…

ZKEACMS:基于ASP.Net Core开发的开源免费内容管理系统

前言 哈喽,大家好!我是码农刚子,大家应该都已和床分手,去上班了吧。国庆假期在家没事,试用了一下ZKEACMS,一个可视化拖拽的内容管理系统,今天给大家介绍一下。 简介 ZKEACMS也叫纸壳CMS,是由纸壳软件自主研发的…

文件系统的层次结构

![image-20251007145304913](/Users/tusier/Library/Application Support/typora-user-images/image-20251007145304913.png)1.用户需要通过操作系统提供的结构发出上述请求--用户接口 2.由于用户提供的是文件存放路径…

oracle 19c学习笔记2

知识来自元宝oracle 19C表没有使用序列,如何获取自增列的当前值? 引用 8 篇资料作为参考在 Oracle 19c 中,如果您的表使用了 IDENTITY列(自增列),虽然它底层基于序列,但您无法像操作普通序列那样直接查询其当前…

网站优化具体做哪些事情冀州网站制作

当构建卷积神经网络时&#xff0c;我们可以使用不同的卷积操作来提取图像特征。以下是一些常见的卷积操作&#xff0c;以及它们的 PyTorch 实现&#xff1a; 标准卷积层&#xff1a;通过 nn.Conv2d 实现标准的卷积操作。 conv_standard nn.Conv2d(in_channels3, out_channel…