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

五金外贸网站seo推广网站

五金外贸网站,seo推广网站,西藏城乡住房建设厅网站,crm客户管理提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Python数据结构与算法的详细介绍1.Python中的常用的分治算法2. 分治算法3.详细的分治代码1)一种常见的分治算法 总结 前言 提示:这…

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、Python数据结构与算法的详细介绍
    • 1.Python中的常用的分治算法
      • 2. 分治算法
      • 3.详细的分治代码
        • 1)一种常见的分治算法
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

第一天Python数据结构与算法的详细介绍
第二天五种常见的排序算法
第三天两种常见的搜索算法
第四天两种常见的递归算法
第五天一种常见的动态规划算法
第六天一种常见的贪心算法
第七天一种常见的分治算法

提示:以下是本篇文章正文内容,下面案例可供参考

一、Python数据结构与算法的详细介绍

1.Python中的常用的分治算法

以下是Python中的一些常用算法:

2. 分治算法

分治算法
将问题划分为几个规模较小的子问题分别解决,然后将子问题的解合并得到原问题的解。快速排序和归并排序是分治算法的典型例子。

3.详细的分治代码

1)一种常见的分治算法
def quick_sort(arr):# 快速排序的主函数def partition(low, high):# 选择最右边的元素作为基准pivot = arr[high]i = low - 1  # 较小元素的索引for j in range(low, high):# 如果当前元素小于或等于基准if arr[j] <= pivot:i += 1# 交换arr[i]和arr[j]arr[i], arr[j] = arr[j], arr[i]# 交换arr[i + 1]和arr[high] (或基准)arr[i + 1], arr[high] = arr[high], arr[i + 1]return i + 1# 基本情况:如果数组为空或只有一个元素,则直接返回if len(arr) <= 1:return arrelse:# 递归地对数组进行排序pivot_index = partition(0, len(arr) - 1)left_arr = quick_sort(arr[:pivot_index])right_arr = quick_sort(arr[pivot_index + 1:])# 合并排序后的数组(这里实际上没有真正的合并操作,因为数组是就地排序的)# 但为了保持函数调用的完整性,我们仍然返回合并后的结果(即原数组)return left_arr + [arr[pivot_index]] + right_arr# 注意:在实际应用中,为了效率,我们通常不会真的将数组拆分再合并,
# 因为Python的列表切片操作是O(n)时间复杂度的。这里的返回语句只是为了演示分治的思想。
# 在实际实现中,我们会在原地对数组进行排序,避免额外的空间开销。# 归并排序的实现
def merge_sort(arr):# 归并排序的主函数def merge(left, right):sorted_array = []i = j = 0# 合并两个已排序的数组while i < len(left) and j < len(right):if left[i] < right[j]:sorted_array.append(left[i])i += 1else:sorted_array.append(right[j])j += 1# 添加剩余的元素(如果有)sorted_array.extend(left[i:])sorted_array.extend(right[j:])return sorted_array# 基本情况:如果数组为空或只有一个元素,则直接返回if len(arr) <= 1:return arrelse:# 找到数组的中间点,将数组分为两部分mid = len(arr) // 2left_half = merge_sort(arr[:mid])right_half = merge_sort(arr[mid:])# 合并两个已排序的部分return merge(left_half, right_half)# 测试代码
if __name__ == "__main__":test_array = [38, 27, 43, 3, 9, 82, 10]print("Original array:", test_array)# 使用快速排序quick_sorted_array = quick_sort(test_array[:])  # 使用切片创建数组的副本以避免修改原数组print("Quick sorted array:", quick_sorted_array)# 使用归并排序merge_sorted_array = merge_sort(test_array[:])  # 同样使用切片print("Merge sorted array:", merge_sorted_array)

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文简单介绍一种常见的分治算法。

http://www.yidumall.com/news/39115.html

相关文章:

  • 章丘网站制作嘉兴seo外包服务商
  • 网站开发 自我评价seo是什么部位
  • 如何在天气预报网站做引流seo排名点击器曝光行者seo
  • 专业做网站哪里有大连百度关键词排名
  • 外贸网站知名做外链新闻发布系统
  • 南宁市做公司网站品牌网络推广方案
  • 好听好记的网站域名苏州优化排名seo
  • 网站后台的意义关键词怎么做快速的有排名
  • wordpress条件筛选网站如何优化排名软件
  • 买好域名后怎么做网站网站推广优化
  • 唐山哪里建筑工地最好谷歌seo教程
  • 如何做2级网站seo搜索引擎营销工具
  • 内网门户网站建设方案seo引擎优化工具
  • 深深圳的网站建设公司百度seo排名教程
  • wordpress判断函数网站排名优化软件哪家好
  • 网站能用到管理后台上吗市场推广计划方案模板
  • PHP做网站的核心是什么赚钱软件
  • 网站开发是怎么开发的安顺seo
  • 西宁专业做网站公司计算机培训班
  • 做水果网站特点分析报告百度招聘官网
  • 公司网页设计毕业设计商丘seo公司
  • 做淘宝网站如何提取中间的提成广告网络
  • 在搜狐快站上做网站怎么跳转北京seo做排名
  • 北京做网站建设的公司鼓楼网站seo搜索引擎优化
  • 哪个网站可以兼职做效果图网站设计公司北京
  • 怎么样才能把网站关键词做有排名微信朋友圈广告如何投放
  • 旭泽建站seo软件推广
  • 360网站做二维码汕头网站建设方案维护
  • 怎样做网站制作团队免费网站推广软件
  • 做网站设计软件搜易网服务介绍