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

创办网站的步骤优化

创办网站的步骤,优化,网站服务器怎么重启,手机网站怎么建设常见的时间复杂度 计算方法1、确定输入规模: 输入规模通常用 n 表示,例如数组长度、链表长度等。2、分析算法的执行步骤: 计算每个操作的执行次数。 确定操作的执行次数与输入规模的关系。3、忽略常数和低阶项: 在大O表示法中&am…

常见的时间复杂度

计算方法1、确定输入规模:
输入规模通常用 n 表示,例如数组长度、链表长度等。2、分析算法的执行步骤:
计算每个操作的执行次数。
确定操作的执行次数与输入规模的关系。3、忽略常数和低阶项:
在大O表示法中,常数和低阶项可以忽略,只保留最高阶项。
例如,O(3n² + 2n + 1) 简化为 O(n²)。

举例:

假设有一个算法,其执行步骤如下:arr = [1, 2, 3, 4, 5]
for i in arr:  # O(n)for j in arr:  # O(n)print(i, j)外层循环:执行 n 次。
内层循环:每次外层循环执行 n 次。
总执行次数:n * n = n²。
时间复杂度:O(n²)。

 

  1. O(1):常数时间复杂度

    • 不论输入规模如何,算法的执行时间是固定的。

    • 示例:访问数组的某个元素。

      arr = [1, 2, 3]
      print(arr[1])  # 时间复杂度为 O(1)
  2. O(n):线性时间复杂度

    • 算法的执行时间与输入规模成正比。

    • 示例:遍历一个数组。

      arr = [1, 2, 3, 4, 5]
      for i in arr:print(i)  # 时间复杂度为 O(n)
  3. O(n²):二次时间复杂度

    • 算法的执行时间与输入规模的平方成正比。

    • 示例:嵌套循环。

      arr = [1, 2, 3, 4, 5]
      for i in arr:for j in arr:print(i, j)  # 时间复杂度为 O(n²)
  4. O(log n):对数时间复杂度

    • 算法的执行时间与输入规模的对数成正比。

    • 示例:二分查找。

      def binary_search(arr, target):left, right = 0, len(arr) - 1while left <= right:mid = (left + right) // 2if arr[mid] == target:return midelif arr[mid] < target:left = mid + 1else:right = mid - 1return -1  # 时间复杂度为 O(log n)
  5. O(n log n):线性对数时间复杂度

    • 算法的执行时间与输入规模的对数成正比。

    • 示例:快速排序、归并排序。

      def merge_sort(arr):if len(arr) <= 1:return arrmid = len(arr) // 2left = merge_sort(arr[:mid])right = merge_sort(arr[mid:])return merge(left, right)  # 时间复杂度为 O(n log n)

 

 空间复杂度

定义:空间复杂度是指算法在运行过程中消耗的内存资源量级,通常用输入规模(如数组长度、链表长度等)来表示。

表示方法:空间复杂度也用大O符号(O)表示,例如 O(1)、O(n)、O(n²) 等。

计算方法1)确定输入规模:
输入规模通常用 n 表示,例如数组长度、链表长度等。2)分析算法使用的额外内存:
计算算法中使用的额外空间(如变量、数组、递归栈等)。
确定额外空间的使用量与输入规模的关系。3)忽略常数和低阶项:
在大O表示法中,常数和低阶项可以忽略,只保留最高阶项。
例如,O(3n² + 2n + 1) 简化为 O(n²)。

 

假设有一个算法,其执行步骤如下:

Python复制

def merge_sort(arr):if len(arr) <= 1:return arrmid = len(arr) // 2left = merge_sort(arr[:mid])  # 创建左半部分数组right = merge_sort(arr[mid:])  # 创建右半部分数组return merge(left, right)  # 合并两个数组
  • 递归调用:每次递归调用会创建两个子数组。

  • 空间复杂度

    • 每次递归调用创建的子数组占用 O(n) 的空间。

    • 递归深度为 O(log n)。

    • 总空间复杂度为 O(n)(递归栈空间)。

常见的空间复杂度

  1. O(1):常数空间复杂度

    • 不论输入规模如何,算法使用的额外内存是固定的。

    • 示例:交换两个变量的值。

      a, b = 1, 2
      a, b = b, a  # 空间复杂度为 O(1)
  2. O(n):线性空间复杂度

    • 算法使用的额外内存量与输入规模成正比。

    • 示例:复制一个数组。

      arr = [1, 2, 3, 4, 5]
      new_arr = arr[:]  # 空间复杂度为 O(n)
  3. O(n²):二次空间复杂度

    • 算法使用的额外内存量与输入规模的平方成正比。

    • 示例:创建一个二维数组。

      arr = [[0] * n for _ in range(n)]  # 空间复杂度为 O(n²)
http://www.tj-hxxt.cn/news/127205.html

相关文章:

  • 公众号开放平台seo怎么做推广
  • 网页设计与制作实训室厂家宁波超值关键词优化
  • 校园网站如何建立seo黑帽教程视频
  • 郑州做网站哪个公司好深圳知名seo公司
  • 网站如何建设二级域名代理交换友链
  • 网站开发可选择方案有哪些百度投流运营
  • 怎样做支付网站什么是百度竞价推广
  • 电子商务网站的网络营销策略分析东莞网站建设优化排名
  • vue做pc网站十大网站管理系统
  • 有哪些外贸公司网站做的比较好百度快照下载
  • ps切片以后 怎么做网站龙岩seo
  • 遵义做什么网站好广东seo推广公司
  • 网站建设公司 深圳浙江seo推广
  • mysql网站后台管理系统下载西安网站建设公司电话
  • 杭州视频网站建设如何优化网页加载速度
  • 济南网站建设安卓版网络优化工程师需要学什么
  • 假冒彩票网站开发建设网站流程
  • 企业网站设计建设企业网站管理
  • java如何做网站企业管理培训班哪个好
  • 邢台网站建设公司排名快速优化seo
  • 集团网站下分网站 模板广州网页推广公司
  • 聊城做网站公司seo中文
  • 网站维护流程怎样在百度发广告贴
  • wordpress 调用 编辑器武汉seo网站推广
  • 梧州门户网站上海搜索seo
  • 二手设备回收做哪个网站好搜索引擎有哪些分类
  • 勤政 政府网站建设关键词提取工具
  • 网站建设方向长沙网站制作费用
  • 网站建设策划书范文运营网站
  • 专做美食的网站营销策划品牌策划