`
liuhd2010
  • 浏览: 148030 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

[转]各种算法的时间复杂度

 
阅读更多

1、Hash算法时间复杂度:O(1)

2、遍历二叉树时间复杂度:对含有n个节点的二叉树,遍历算法的时间复杂度为O(n),控件复杂度也为 O(n)

3、常见排序算法时间复杂度:

 

名称

复杂度 说明 备注
冒泡排序
Bubble Sort

O(N*N)

将待排序的元素看作是竖着排列的气泡,较小的元素比较轻,从而要往上浮

插入排序

Insertion sort

O(N*N)

逐一取出元素,在已经排序的元素序列中从后向前扫描,放到适当的位置

起初,已经排序的元素序列为空

选择排序

O(N*N)

首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此递归。

快速排序

Quick Sort

O(n *log2(n))

先选择中间值,然后把比它小的放在左边,大的放在右边(具体的实现是从两边找,找到一对后交换)。然后对两边分别使用这个过程(递归)。

堆排序Heap Sort

O(n *log2(n))

利用堆(heaps)这种数据结构来构造的一种排序算法。堆是一个近似完全二叉树结构,并同时满足堆属性:即子节点的键值或索引总是小于(或者大于)它的父节点。

近似完全二叉树

希尔排

SHELL

O(n1+)

0<<1

选择一个步长(Step) ,然后按间隔为步长的单元进行排序.递归,步长逐渐变小,直至为1.

箱排序
Bin Sort

O(n)

设置若干个箱子,把关键字等于 k 的记录全都装入到第 k 个箱子里 ( 分配 ) ,然后按序号依次将各非空的箱子首尾连接起来 ( 收集 )

分配排序的一种:通过 " 分配 " " 收集 " 过程来实现排序。

桶排序

Bucket Sort

O(n)

桶排序的思想是把 [0 1) 划分为 n 个大小相同的子区间,每一子区间是一个桶。

 

分享到:
评论

相关推荐

    关于算法时间复杂度的计算

    算法时间复杂度的计算 算法时间复杂度的计算是计算机科学中一个非常重要的概念,它描述了算法执行时间随着输入规模的变化而增长的速度。时间复杂度通常用大 O 记法表示,即 O(f(n)),其中 f(n) 是问题规模 n 的函数...

    算法 时间复杂度 空间复杂度 经典

    ### 算法的时间复杂度与空间复杂度详解 #### 一、算法复杂度概述 在计算机科学领域,算法的时间复杂度与空间复杂度是衡量一个算法效率的重要指标。时间复杂度关注的是算法执行时间的增长速率,而空间复杂度则侧重...

    算法时间复杂度

    根据给定文件的信息,我们可以详细地探讨“算法时间复杂度”的相关知识点。时间复杂度是衡量算法运行时间随输入规模增长而变化的函数,它在计算机科学与编程领域扮演着至关重要的角色。接下来,我们将围绕以下几个...

    关于递归算法时间复杂度分析的探讨.pdf

    关于递归算法时间复杂度分析的探讨,是一个深入理解算法效率和优化的关键议题。递归,作为解决问题的一种强大工具,其本质是将复杂问题分解为更简单的子问题,通过求解这些子问题来达到最终解决方案的目的。然而,...

    遗传禁忌搜索算法收敛性和时间复杂度分析

    应用马尔科夫链模型证明了遗传禁忌搜索算法是以概率1收敛到全局最优解的,并应用求解随机算法时间复杂度的方法,即求解算法的期望收敛时间,估算了该算法的时间复杂度,结果证明该算法的时间复杂度与所得解的多样性、...

    排序算法时间复杂度的研究.pdf

    ### 排序算法时间复杂度的研究 #### 引言 排序是计算机科学中的基础操作之一,主要用于对数据集中的元素按照特定的顺序进行排列。排序算法的效率直接关系到计算机程序的整体性能。根据数据是否完全加载到内存中,...

    排序算法时间复杂度的分析java语言描述

    以下是对选择排序、冒泡排序、归并排序、快速排序和插入排序这五种常见排序算法的详细介绍,以及如何分析它们的时间复杂度。 1. **选择排序(Selection Sort)** - 原理:选择排序是一种简单直观的排序算法,它...

    算法时间复杂度的实验测试.zip_堆排序;算法时间复杂度_时间复杂度_胡书晗

    在计算机科学领域,算法的时间复杂度是对算法运行所需计算工作量的度量,它反映了算法执行效率与输入数据规模之间的关系。本实验测试的主题聚焦于堆排序算法的时间复杂度分析,由胡书晗进行研究。堆排序是一种基于...

    算法时间复杂度的计算方法

    算法时间复杂度的计算方法 时间复杂度是衡量算法性能的重要指标,它描述了算法执行时间与问题规模之间的关系。时间复杂度是算法的渐近性质,它定义了算法的执行时间与问题规模之间的关系。 时间复杂度的计算方法...

    数据结构算法复杂度题目答案

    在这些程序片段中,我们使用大O符号来表示每个循环结构的时间复杂度。 - (1) O(N):一个简单的for循环,随着N的增加,执行次数与N成正比。 - (2) O(N^2):双重for循环,内部循环的执行次数与外层循环的N成正比,...

    分析算法时间复杂度.zip

    本资料包"分析算法时间复杂度.zip"可能是为了深入探讨这个主题,包含了可能用于教学或研究的不同文件。 "app"、"gradle"、"gradle.properties"、"settings.gradle"、"gradlew.bat"这些文件是Android开发环境中的...

    分析算法时间复杂度java.zip

    在这个"分析算法时间复杂度java.zip"文件中,我们可以预期包含的是关于如何在Java中分析和理解各种算法时间复杂度的相关资源,比如数据结构的实现及其时间复杂度分析。 数据结构是存储和组织数据的特定方式,它们对...

    多段图算法时间复杂度图像

    多段图算法时间复杂度图像

    NOIP普及组 提高组 CSP-J CSP-S初赛 算法的时间复杂度部分题目.pdf

    算法时间复杂度的相关知识点 从给定的文件信息中,我们可以看到该文件主要关注算法的时间复杂度,涉及到算法设计、递归式、主定理等概念。下面,我们将对这些知识点进行详细的解释和分析。 一、算法时间复杂度 ...

    算法时间复杂度的实验测试.doc

    算法时间复杂度的实验测试 时间复杂度是算法分析中的一个重要概念,它是衡量算法性能的重要指标。时间复杂度是指算法执行的时间与输入规模之间的关系。通过实验测试,我们可以分析算法的时间复杂度,从而了解算法的...

    算法时间复杂度(图)

    所有算法时间复杂度对比、图表形式、函数关系

    根号n段归并排序算法时间复杂度分析过程

    综上所述,根号n段归并排序算法通过分段和自底向上的合并策略,实现了线性平均时间复杂度,但在某些特定情况下可能表现出较差的性能。理解其工作原理和时间复杂度分析有助于我们在实际应用中选择合适的排序算法。

    算法实验代码和报告(时间复杂度、0-1背包问题、分治与贪心、蛮力法)

    本资源包含的“算法实验代码和报告”聚焦于几个重要的算法概念:时间复杂度、0-1背包问题、分治策略以及贪心方法,这些都是计算机科学中基础且实用的知识点。 首先,我们来看**时间复杂度**。时间复杂度是用来衡量...

    排序算法时间复杂度比较

    1. 首先产生要进行排序的整形数组(可以保存在文件中...2. 调用各种排序方法对数组排序,并记录花费时间 对于更多更高级的排序算法,以后会实现,另外,对于复杂字符串排序,这些简单排序并不适合,请采用更高效的方法

Global site tag (gtag.js) - Google Analytics