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

闵行网站建设哪家好wordpress 主题 免费

闵行网站建设哪家好,wordpress 主题 免费,wordpress 数据库优化插件,网页前端制作招聘目录 前言 选择排序 代码示例 1. 算法包 2. 选择排序代码 3. 模拟排序 4. 运行程序 5. 从大到小排序 循环细节 外层循环 内层循环 总结 选择排序的适用场景 1. 数据规模非常小 2. 稳定性不重要 3. 几乎全部数据已排序 4. 教育目的 前言 在实际场景中#xf…目录 前言 选择排序 代码示例 1. 算法包 2. 选择排序代码 3. 模拟排序 4. 运行程序 5. 从大到小排序 循环细节 外层循环 内层循环 总结 选择排序的适用场景 1. 数据规模非常小 2. 稳定性不重要 3. 几乎全部数据已排序 4. 教育目的 前言 在实际场景中选择合适的排序算法对于提高程序的效率和性能至关重要本节课主要讲解选择排序的适用场景及代码实现。 选择排序 选择排序(Selection Sort) 是一种简单直观的排序算法它的工作原理是首先在未排序序列中找到最小(大)元素存放到排序序列的起始位置然后再从剩余未排序元素中继续寻找最小(大)元素然后放到已排序序列的末尾。以此类推直到所有元素均排序完毕。 代码示例 下面我们使用Go语言实现一个选择排序 1. 算法包 创建一个 pkg/algorithm.go mkdir pkg/algorithm.go (如果看过上节课的冒泡排序则已存在该文件我们就不需要再创建了) 2. 选择排序代码 打开 pkg/algorithm.go 文件代码如下 从小到大 排序 package pkg// BubbleSort 冒泡排序 ...// SelectionSort 选择排序 func SelectionSort(arr []int) {n : len(arr) // 获取切片长度for i : 0; i n-1; i {// 假设当前位置是最小的minIndex : i// 遍历未排序的部分寻找真正的最小值的索引for j : i 1; j n; j {if arr[j] arr[minIndex] {minIndex j}}// 如果找到更小的数就交换arr[i], arr[minIndex] arr[minIndex], arr[i]} }3. 模拟排序 打开 main.go 文件代码如下 package mainimport (demo/pkgfmt )func main() {// 定义一个切片这里我们模拟 10 个元素arr : []int{789, 59, 1500, 847, 633, 2456, 901, 2, 752, 100}fmt.Println(Original data:, arr) // 先打印原始数据pkg.SelectionSort(arr) // 调用选择排序fmt.Println(New data: , arr) // 后打印排序后的数据 }4. 运行程序 打开终端我们运行 go go run main.go 能发现 Original data 后打印的数据正是我们代码中定义的切片数据顺序也是一致的。 New Data 后打印的数据则是经过选择排序后的数据是从小到大的。 5. 从大到小排序 如果需要 从大到小 排序也是可以的在代码里将两个元素比较的 大于符号 改成 小于符号 即可。 修改 pkg/algorithm.go 文件 package pkg// BubbleSort 冒泡排序 ...// SelectionSort 选择排序 func SelectionSort(arr []int) {n : len(arr) // 获取切片长度for i : 0; i n-1; i {// 假设当前位置是最小的minIndex : i// 遍历未排序的部分寻找真正的最小值的索引for j : i 1; j n; j {if arr[j] arr[minIndex] {minIndex j}}// 如果找到更小的数就交换arr[i], arr[minIndex] arr[minIndex], arr[i]} }只需要一丁点的代码即可 从 package pkg 算第一行上面示例中在第十四行代码中我们将  改成了  这样就变成了 从大到小排序了 补充 代码里还有一处可以完善在最后两个数进行交换时 思考一下这一行代码 arr[i], arr[minIndex] arr[minIndex], arr[i] 如果arr[minIndex] 和 arr[i] 这两个数是相同的那么还有必要进行交换吗 当然是可以不用交换所以我们可以再加上一个判断 // 如果它们不相等 if arr[minIndex] ! arr[i] {// 如果找到更小的数就交换arr[i], arr[minIndex] arr[minIndex], arr[i] } 循环细节 在选择排序算法中外层循环和内层循环扮演着至关重要的角色它们共同协作以实现对整个数组的排序。下面是这两个循环的详细说明 外层循环 目的外层循环负责控制排序的轮次。对于包含 n 个元素的数组外层循环需要进行 n - 1 轮排序(因为当只剩下一个元素时它自然就是排序好的)。每一轮排序都会从未排序的部分找到一个最小(或最大)的元素并将其放到已排序部分的末尾起始与结束外层循环通常从一个起始索引(如 0)开始直到达到数组长度减 1 (n - 1) 的索引结束。这是因为当外层循环到达 n - 1 时所有元素都已经排好序只剩下最后一个元素(即索引为 n - 1 的元素)它自然就是已排序的作用在每一轮排序开始时外层循环的索引(假设为 i )代表当前已排序部分的末尾。然后内层循环会从未排序的部分(即索引 i 1 到 n - 1 的部分)中找到一个最小(或最大)元素的索引并与索引 i 处的元素进行可能的交换 内层循环 目的内层循环负责在每一轮排序中从未排序的部分找到最小(或最大)元素的索引。一旦找到就可能与当前轮次的外层循环索引处的元素进行交换(如果它们不是同一个元素的话)起始与结束内层循环的起始索引通常是外层循环索引的下一个位置(即 i 1)而结束索引是数组的最后一个元素(即 n - 1)。这是因为内层循环需要遍历整个未排序的部分来找到最小(或最大)的元素作用在每一轮外层循环中内层循环都会遍历未排序的部分通常比较来找到最小(或最大)元素的索引。这个索引会被存储在某个变量中(如 minIndex)以便在遍历结束后与外层循环索引处的元素进行可能的交换交换如果内层循环找到了一个比外层循环索引处更小的元素(即 minIndex 不等于外层循环的索引 i )那么就需要进行交换操作将这两个元素的位置互换。这样外层循环索引处的元素就变成了当前轮次中未排序部分的最小(或最大)元素被正确地放置在了已排序部分的末尾 总结 外层循环控制排序的轮次每一轮都试图从未排序的部分找到一个最小(或最大)元素并将其放置到正确的位置上。内层循环则负责在每一轮中执行这个查找和可能的交换操作。通过这两层循环的协作整个数组最终被排序完成。 选择排序的适用场景 尽管选择排序在大多数现代应用中不是最高效的排序算法(其平均和最坏情况时间复杂度都是 O(n ^ 2))但在某些特定场景下它仍然有其用途 1. 数据规模非常小 对于非常小的数据集选择排序在效率损失可能微不足道而它实现简单易于理解和实现 2. 稳定性不重要 选择排序不是稳定的排序算法(即相等元素的相对顺序可能会改变)。如果应用场景不需要保持元素的原始相对顺序那么选择排序可以作为一个简单的选择 3. 几乎全部数据已排序 虽然理论上来说即使数据几乎全部已排序选择排序的效率也不会显著提升但在某些特定应用中如果已知数据集接近排序状态并且算法设计可以利用这一点(例如通过提前终止不必要的比较)。则可能略有优势。然而这通常需要结合其他优化技巧 4. 教育目的 由于选择排序简单直观它常被用于教学目的帮助学生理解排序算法的基本概念和工作原理 总之尽管存在更高效的排序算法但在特定场景下选择排序仍然有其用武之地。
http://www.hkea.cn/news/14356142/

相关文章:

  • 私人精品货源网站有哪些网店推广运营
  • 宝安网站多少钱易企网站建设
  • 在线视频制作网站专门做羽毛球的网站
  • 网站建设相关资料湖北住房城乡建设厅网站首页
  • 国家免费培训网站服装设计官网
  • 怎么加入网站做微商城口碑好的扬州网站建设
  • 盘锦网站建设报价济南建筑设计公司
  • 学平面设计的网站简述网站建设小组的五类成员
  • 自己做网站卖仿货百度推广营销中心
  • 佛山网站建设的品牌宁波网站建设优化服务公司
  • cpa自己做网站wordpres做视频网站
  • 广州教育网站建设常州建设局考试网站
  • 高校网站建设意义网站报错 500
  • 购物网站支付页面制作做网站怎么发布
  • 做网站百度推广多少钱网站的落地页
  • 网站跳出率什么意思团购做的好的网站
  • 专注河南网站建设网站注册界面
  • 安义南昌网站建设公司手机制作app的软件免费
  • 网站设计心的国内可以使用的自己建站
  • wordpress迅雷下载地址优化设计答案大全英语
  • 请人做网站要多少钱产品优化是什么意思
  • 企业网站开发外包合同wordpress 设置缓存
  • 义乌网站建设托管广告设计与制作网站
  • 网站推广在哪些平台做外链装修公司网站asp源码
  • 番禺电子商务网站建设试玩app推广网站建设
  • 网站开发职业技能简历周口微网站制作
  • 手机网站设计技巧中国制造网效果怎么样
  • 如何在工商网站做预先核名用微信怎么做商城网站吗
  • 怎么做网站logo网站建设佛山拓客科技
  • 企业网站制作深圳wordpress区分移动站