IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 数据结构(python):时间复杂度、 数据结构 -> 正文阅读

[数据结构与算法]数据结构(python):时间复杂度、 数据结构

1.时间复杂度_代码示例

# 如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a、b、c可能的组合?
# O(n^3) vs O(n^2) 效率
# O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)
import time

start_time = time.time()
for a in range(0, 1001):
    for b in range(0, 1001):
        for c in range(0, 1001):
            if a+b+c==1000 and a**2+b**2==c**2:
                print("a={0}, b={1}, c={2}".format(a, b, c))
end_time = time.time()
print("第一种方法用时:",end_time-start_time) # 输出: 109.12208700180054

start_time = time.time()
for b in range(0, 1001):
    for c in range(0, 1001):
        if (1000-b-c)**2+b**2==c**2 and 1000-b-c>=0:
            print("a={0}, b={1}, c={2}".format((1000-b-c), b, c))
end_time = time.time()
print("第二种方法用时:", end_time-start_time) # 输出: 1.1500554084777832

?

2.数据结构 _代码示例

# 抽象数据类型(ADT)的含义是指一个数学模型以及定义在此数学模型上的一组操作。

from timeit import Timer

def test1():
    li = []
    for x in range(1000):
        li = li + [x]
    # print(li)

def test2():
    li = []
    for x in range(1000):
        li.append(x)

def test3():
    li = [i for i in range(1000)]

def test4():
    li = list(range(1000))

t1 = Timer("test1()", "from __main__ import test1")
print("concat", t1.timeit(number=10000), "seconds") # 10.48 seconds

t2 = Timer("test2()", "from __main__ import test2") # 0.5406 seconds
print("append", t2.timeit(number=10000), "seconds")

t3 = Timer("test3()", "from __main__ import test3")
print("comprehension", t3.timeit(number=10000), "seconds") # 0.2888 seconds

t4 = Timer("test4()", "from __main__ import test4")
print("list_range", t4.timeit(number=10000), "seconds") # 0.1246 seconds

?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-01-03 16:22:02  更:2022-01-03 16:23:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:44:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码