活动介绍
file-type

JavaScript排序算法与深拷贝实践

下载需积分: 50 | 2KB | 更新于2024-09-03 | 103 浏览量 | 1 下载量 举报 收藏
download 立即下载
本资源文档详细介绍了JavaScript编程语言中的一些基础概念和实用技巧,包括排序算法、数据复制和正则表达式应用。主要内容分为以下几个部分: 1. 冒泡排序:文档首先展示了冒泡排序算法的实现。冒泡排序是一种简单的排序算法,通过比较相邻元素并交换它们的位置,重复这个过程直到整个数组有序。在提供的代码中,`BubbleSort`函数接收一个数组`arr`,通过两个嵌套循环遍历数组,当发现相邻元素逆序时,交换它们的位置,从而达到升序排列。这种排序算法的时间复杂度是O(n^2),适用于小型数据集。 2. 选择排序:`changeSort`函数展示了另一种排序算法——选择排序。选择排序每次从未排序的部分选择最小(或最大)的元素,将其放到已排序部分的末尾。虽然选择排序同样具有O(n^2)的时间复杂度,但其内部逻辑与冒泡排序有所不同,这里主要强调了对数组进行比较和元素交换的过程。 3. 深拷贝:`clone`函数用于实现对象的深拷贝。JavaScript中的深拷贝不同于浅拷贝,它会递归地创建新对象,确保子对象也被复制,而非仅仅复制引用。当遇到数组或对象时,函数会根据不同类型进行处理,确保数据独立性。 4. JSON深拷贝:文档提到的`this.resCopy = JSON.parse(JSON.stringify(res.data))`这一行代码是将原始对象转换为JSON字符串再解析回来,实现了对象的深拷贝,确保在处理复杂数据结构时数据的安全复制。 5. 邮箱验证正则表达式:正则表达式`/^[a-zA-Z0-9_]{3,12}@[A-z0-9_]{2,12}(\.com|\.cn|\.com\.cn)$/g`被用来检查字符串是否符合邮箱格式。该正则表达式匹配了大部分常见邮箱格式,包括用户名长度、@符号、顶级域名等要求,并使用全局搜索标志`g`,表示可以匹配多组。 6. 打印素数:最后部分提到的是一个用于生成并打印2到99之间的素数的简单循环。通过嵌套循环,对每个数字进行质数判断,若数字只能被1和自身整除,则打印该数字,这是基本的素数筛选算法。 该文档提供了JavaScript编程中的基本排序算法、数据复制技术以及正则表达式的实用应用,对于初学者和进阶开发者都具有一定的参考价值。

相关推荐

filetype

C语言实训任务 编写一个函数,根据学号生成相应数量的随机质数,并按特定规则排序。具体要求如下: 生成随机质数:函数需生成数量为学号末两位数字相加所得值的随机质数。例如,学号末两位为 23,则生成 5 个随机质数。 排序规则:按照学号末位数字对 3 取余的结果执行不同排序规则: 若学号末位 % 3 = 0,将生成的随机质数按升序排列; 若学号末位 % 3 = 1,将生成的随机质数按降序排列; 若学号末位 % 3 = 2,将生成的随机质数先按偶数升序排列,再按奇数升序排列。 命名规范:函数名和变量名需加上自己学号的后两位,以区分不同同学的代码。 我的学号:2306010508 一、实训题目 基于学号的随机质数生成与排序算法实现 二、实训目的 掌握 C 语言函数设计与模块化编程方法 理解随机数生成与质数判断的算法逻辑 实现并应用不同排序策略(升序 / 降序 / 奇偶分类) 熟悉 C 语言数组操作与流程控制 培养问题分析与代码调试能力 三、任务分析 1. 需求理解 输入:学号(例如 20221010) 处理规则: 生成数量:学号末两位相加(1+0=1 个质数) 排序规则:学号末位 %3=0 → 升序排列 输出:排序后的质数序列 2. 技术要点 随机质数生成算法 冒泡排序实现 函数命名规范(添加学号后缀) 核心算法 质数判断算法 输入:整数n 1. 若n≤1,返回false 2. 若n=2,返回true 3. 若n为偶数,返回false 4. 从3到√n遍历奇数i,若n能被i整除,返回false 5. 返回true 冒泡排序算法(升序) 输入:数组arr,长度n 1. 外层循环i从0到n-2 2. 内层循环j从0到n-i-2 3. 若arr[j] > arr[j+1],交换两者 4. 重复1-3直到排序完成 测试结果 输入:学号20221010 输出: 学号20221010生成的随机质数: 311 3. 验证说明 生成数量验证:末两位 10 → 1+0=1,符合预期 排序验证:单个元素升序排序后结果不变 质数验证:311 是质数(只能被 1 和自身整除) 记住我的学号是:2306010508

xjj508
  • 粉丝: 0
上传资源 快速赚钱