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

企业网站为什么做优化医疗网站建设行业现状

企业网站为什么做优化,医疗网站建设行业现状,手机网站模板 优帮云,上海 网站开发 外包在数据处理和算法设计中#xff0c;排序是一项基础且重要的操作。本文将介绍两种经典的排序算法#xff1a;冒泡排序#xff08;Bubble Sort#xff09;和选择排序#xff08;Selection Sort#xff09;。我们将通过示例代码来演示这两种算法如何对列表进行升序排列。 一…在数据处理和算法设计中排序是一项基础且重要的操作。本文将介绍两种经典的排序算法冒泡排序Bubble Sort和选择排序Selection Sort。我们将通过示例代码来演示这两种算法如何对列表进行升序排列。 一. 冒泡排序 冒泡排序是一种简单的排序算法它重复地遍历待排序的列表比较相邻的元素并将顺序错误的元素进行交换。这个过程会一直进行直到没有需要交换的元素为止。 分析 冒泡排序是一种简单的排序算法主要思想是通过重复遍历待排序的列表比较相邻的元素并根据顺序交换它们。每次遍历后未排序部分的最大元素会“冒泡”到列表的末尾。因此算法得名为“冒泡排序”。 我们先拿到需要排序的列表 [ 10, 50 , 20, 60, 40, 30] 我们知道冒泡排序实现的原理以后可以自己在脑海里模拟计算机进行遍历排序 首先第一轮我们先拿数列第一个数据和第二个数据比较如果第二个数 比第一个数大就交换两个数据的位置。然后然后比较第二个数与第三个 数一直到比较完整个数列这时候数列最小的数就已经排在最后面了于 是后面每轮就不需要再与最后一个数据比较了。 然后后面每一轮都和第一轮一样只不过每轮结束下一轮都可以少比较一个数据。 我们需要比较的列表是[ 10, 50, 20, 60, 40, 30]那么我们每轮结束以后 够可以得到一个列表。 然后让我们模拟一下每一轮结束得到的列表应该是什么样的 第一轮 [50, 20, 60, 40, 30, 10] 第二轮 [50, 60, 40, 30, 20, 10] 第三轮 [60, 50, 40, 30, 20, 10] # 注意这里我们都可以看到其实数组的排序其实已经完成了 第四轮 [60, 50, 40, 30, 20, 10] # 但是计算机不是人类它只会按照程序运行继续比较。 第五轮 [60, 50, 40, 30, 20, 10] 冒泡排序的实现 以下是使用 Python 实现的冒泡排序代码排序列表 [10, 50, 20, 60, 40, 30] # 冒泡排序 降序,升序将改成 l0 [10, 50, 20, 60, 40, 30] total 0 count 0for i in range(len(l0) - 1):for j in range(len(l0) - i - 1):total 1  # 统计比较次数if l0[j] l0[j 1]:  # 升序排序条件count 1  # 统计交换次数temp l0[j]  # 交换元素l0[j] l0[j 1]l0[j 1] tempprint(f第{i 1}轮{l0})print(f比较了{total}次,数值互换了{count}次, l0) 运行结果 运行上述代码后输出结果如下: 第一轮 [50, 20, 60, 40, 30, 10] 第二轮 [50, 60, 40, 30, 20, 10] 第三轮 [60, 50, 40, 30, 20, 10] 第四轮 [60, 50, 40, 30, 20, 10] 第五轮 [60, 50, 40, 30, 20, 10] 比较了15次,数值互换了9次 [60, 50, 40, 30, 20, 10] 在这个例子中我们可以看到最终的排序结果是 [10, 20, 30, 40, 50, 60] 。在排序过程中总共进行了 15 次比较其中 9 次进行了值的交换。 二. 选择排序 选择排序是一种不稳定的排序算法它的基本思想是每一趟从未排序的部分中选择最小或最大的元素放到已排序序列的末尾直到所有元素都排好序。这种方法的时间复杂度为 O(n^2)。 分析 选择排序是一种简单的排序算法。它的基本思想是每次从未排序的部分中选择最小或最大的元素将其放到已排序部分的末尾。 我们先拿到需要排序的列表 [ 10, 50 , 20, 60, 40, 30] 我们知道选择排序实现的原理以后就像冒泡排序一样在脑海里模拟计算机进行遍历排序 首先我们定义一个循环外的变量max_index把它当作每轮未排序最大数值的索引第一轮我们先把数列第一个数据当作最大值把它的索引赋予max_index 然后比较l0[max_index]和第二个数据如果第二个数比第一个数大就把 第二个数的索引赋予max_index。然后,l0[max_index]与第三个数比较 一直到比较完整个数列这时候max_index就是数组最大数值的索引交换 数列中第一个数值与最大数值的位置。然后后面每一轮都和第一轮一样只不过每轮结束下一轮都可以少比较一个数据。 我们需要比较的列表是[ 10, 50, 20, 60, 40, 30]那么我们每轮结束以后就 可以得到一个列表。 然后让我们模拟一下每一轮结束得到的列表应该是什么样的 第1轮[60, 50, 20, 10, 40, 30] 第2轮[60, 50, 20, 10, 40, 30] 第3轮[60, 50, 40, 10, 20, 30] 第4轮[60, 50, 40, 30, 20, 10] 第5轮[60, 50, 40, 30, 20, 10] 选择排序的实现 以下是使用 Python 实现的选择排序代码对列表 [60, 10, 20, 50, 40, 30] 进行降序排序 # 选择排序 降序, 升序将改成 l0 [10, 50, 20, 60, 40, 30] total 0 count 0for i in range(len(l0) - 1):max_index i # 假设未排序部分的第一个元素为最大值for j in range(i 1, len(l0)):total 1 # 记录比较次数if l0[max_index] l0[j]: # 寻找最大值max_index jcount 1 # 记录交换次数# 交换当前元素和找到的最大元素temp l0[i]l0[i] l0[max_index]l0[max_index] tempprint(f第{i 1}轮{l0})print(f比较了{total}次, 数值互换了{count}次, l0) 运行结果 运行上述选择排序的代码后输出结果如下 第1轮[60, 50, 20, 10, 40, 30] 第2轮[60, 50, 20, 10, 40, 30] 第3轮[60, 50, 40, 10, 20, 30] 第4轮[60, 50, 40, 30, 20, 10] 第5轮[60, 50, 40, 30, 20, 10] 比较了15次,数值互换了5次 [60, 50, 40, 30, 20, 10] 在这个例子中最终的排序结果是 [60, 50, 40, 30, 20, 10] 。在排序过程中总共进行了 15 次比较一共进行了5次值的交换。 三. 冒泡排序与选择排序比较 性能分析 时间复杂度: 冒泡排序的时间复杂度为 O(n²)最坏和平均情况下都是 O(n²)最佳情况下列表已排序为 O(n)。 选择排序的时间复杂度也是 O(n²)无论是最坏、平均还是最佳情况都是 O(n²)。 选择排序 比较次数在每一轮中选择排序需要遍历未排序的部分以找到最大值或最小值。对于长度为 (n) 的列表第一轮需要比较 (n-1) 次第二轮需要比较 (n-2) 次以此类推。因此总的比较次数为O(n^2) 交换次数每一轮最多只进行一次交换因此交换次数为 (O(n))。 冒泡排序 比较次数在每一轮中冒泡排序需要比较相邻的元素。对于长度为 (n) 的列表第一轮需要比较 (n-1) 次第二轮需要比较 (n-2) 次以此类推。总的比较次数同样为O(n^2) 交换次数在最坏的情况下每一次比较都需要进行交换因此交换次数也是 (O(n^2))。 空间复杂度: 冒泡排序是原地排序算法空间复杂度为 O(1)。 选择排序同样是原地排序算法空间复杂度也为 O(1)。 使用场景 冒泡排序: 1.因为其简单易懂适合教育和教学的场景帮助初学者理解排序的基本概念。 2.不适合处理大型数据集效率较低。 选择排序: 1.选择排序虽然也不适合处理大型数据集但在某些特定情况下例如数据基本有序时它可能会表现得比冒泡排序更好。 2.适合对小型数据集进行排序且实现简单。 四. 总结 通过本文的介绍我们了解了冒泡排序和选择排序这两种经典的排序算法。虽然它们在实际应用中并不常用因为有更高效的排序算法如快速排序和归并排序但它们在学习算法的过程中提供了良好的基础。 代码复用在实际开发中使用内置的排序函数会更加高效。例如Python 提供了内置的  sort()  方法和 sorted() 函数使用起来简单且效率高。 示例如下 # 使用 Python 内置的排序 l0 [10, 50, 20, 60, 40, 30] l0.sort()  # 原地排序 print(l0)  # 输出[10, 20, 30, 40, 50, 60]l1 [60, 10, 20, 50, 40, 30] sorted_l1 sorted(l1)  # 返回新排序的列表 print(sorted_l1)  # 输出[10, 20, 30, 40, 50, 60] 希望本文能够帮助你理解冒泡排序和选择排序的基本概念及其实现。如果你有任何问题欢迎在评论区讨论
http://www.dnsts.com.cn/news/91786.html

相关文章:

  • 加快信用网站建设全屋整装十大排名全国前十强
  • 装修设计网站哪个平台最好做公司官网大概多少钱
  • 平泉市住房和城乡建设局网站网站设置屏蔽广告
  • 接做网站需要问什么软件公司网站突然404
  • 网站建设公司 温州wordpress termux
  • 网页制作建立站点淄博网站建设相关文章
  • 专业做酒类营销的网站如何进入微网站
  • php网站开发参考书籍网站推广策划书包括哪些点
  • 如何做网站淘客推广百度小游戏入口
  • 上海建站哪家好有哪些网站做的很好
  • 做网站需要机吗成都网站设计制作公司
  • 企业电子商务网站建设策划书图片制作视频
  • 广东住房和城乡建设局网站wordpress的cms主题
  • 利用社交网站做淘宝客岳阳网站建设网站
  • 网站正在建设中是什么意思网站开发技术架构
  • 做课题查新网站设计师服务平台素材羊
  • html如果制作一个内容多的网站建设 投资基金管理有限公司网站
  • 盘锦网站制作大石桥城乡规划建设局网站
  • 重庆建设造价工程信息网站wordpress伪静态不跳转404
  • 网站开发的前后台的步骤分别为南平高速建设有限公司网站
  • 兰溪市建设局官方网站集团网站建设定制网站建设
  • 网站文章怎么做标签免费手机网页制作
  • 金华网站开发建设网站伪静态
  • 营销型网站制作步骤五个电脑编程与网站建设
  • 各大网站怎么把世界杯做头条电商网站建设服务平台
  • 如何查询网站的注册信息网架公司赵娜
  • 现在主流网站用什么做的济南企业网站设计
  • 在网站留外链怎么做广州番禺邮政编码
  • 哈尔滨做网站收费seo网站推广可以自己搞吗
  • 重庆企业网站建设推荐网站小程序制作公司