返回顶部
首页 > 资讯 > 后端开发 > Python >排序时间复杂度对比
  • 915
分享到

排序时间复杂度对比

复杂度时间 2023-01-30 22:01:44 915人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import random 4 import datetime 5 6 #插入式排序 7 def insert_sor

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 import random
 4 import datetime
 5 
 6 #插入式排序
 7 def insert_sort(list,result):
 8     cnt = len(list)
 9     i=0
10     for i in range(cnt):
11         right = list[i]
12         result.append(right)
13         if len(result) == 1:
14             continue
15         for j in range(len(result)-1,0,-1):
16             if right < result[j-1]:
17                 result[j] = result[j-1]
18                 result[j-1] = right
19             else:
20                 break
21     return result
22 
23 #归并排序
24 def tog_sort(lists):
25     if len(lists) <= 1:
26         return lists
27     num = int(len(lists)/2)
28     left = tog_sort(lists[:num])
29     right = tog_sort(lists[num:])
30     return sort(left,right)
31 
32 def sort(left,right):
33     l,r = 0,0
34     result = []
35     while l<len(left) and r<len(right):
36         if left[l]<right[r]:
37             result.append(left[l])
38             l += 1
39         else:
40             result.append(right[r])
41             r += 1
42     result += left[l:]
43     result += right[r:]
44     return result
45 
46 if __name__ == '__main__':
47     list = []
48     result = []
49     for i in range(20000):
50         list.append(random.randint(1, 200))
51     print('BEFORE:')
52     print(list)
53     starttime = datetime.datetime.now()
54     insert_sort(list,result)
55     print('插入式排序:')
56     print(result)
57     endtime = datetime.datetime.now()
58     print((endtime - starttime).seconds,end='')
59     print('秒',end='')
60     print((endtime - starttime).microseconds,end='')
61     print('毫秒')
62 
63     starttime = datetime.datetime.now()
64     result = tog_sort(list)
65     print('归并排序:')
66     print(result)
67     endtime = datetime.datetime.now()
68     print((endtime - starttime).seconds, end='')
69     print('秒', end='')
70     print((endtime - starttime).microseconds, end='')
71     print('毫秒')

两万个数据,两种排序的时间对比,如下图:

 

--结束END--

本文标题: 排序时间复杂度对比

本文链接: https://lsjlt.com/news/179483.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 排序时间复杂度对比
    1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import random 4 import datetime 5 6 #插入式排序 7 def insert_sor...
    99+
    2023-01-30
    复杂度 时间
  • php中冒泡排序的时间复杂度和空间复杂度是什么
    小编给大家分享一下php中冒泡排序的时间复杂度和空间复杂度是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!冒泡排序的时间复杂度和空间复杂度1、代码实现   ...
    99+
    2024-04-02
  • 八大排序算法(含时间复杂度、空间复杂度、算法稳定性)
    文章目录 八大排序算法(含时间复杂度、空间复杂度、算法稳定性)1、(直接)插入排序1.1、算法思想1.2、排序过程图解1.3、排序代码 2、希尔排序3、冒泡排序3.1、算法思想3.2、排...
    99+
    2023-10-19
    算法 排序算法 c语言 c++
  • JavaScript时间复杂度和空间复杂度
    目录前言时间复杂度空间复杂度前言 在上一篇文章中介绍了算法和数据结构的基本概念,这篇文章来介绍一下时间复杂度和空间复杂度。 时间复杂度和空间复杂度是衡量一个算法是否优秀的标准,通常我...
    99+
    2024-04-02
  • 归并排序时间复杂度过程推导详解
    目录归并排序总结归并排序 归并排序方法就是把一组n个数的序列,折半分为两个序列,然后再将这两个序列再分,一直分下去,直到分为n个长度为1的序列。然后两两按大小归并。如此反复,直到最后...
    99+
    2024-04-02
  • java实现堆排序以及时间复杂度的分析
    完全二叉树:从上到下,从左到右,每层的节点都是满的,最下边一层所有的节点都是连续集中在最左边。 二叉树的特点就是左子节点是父节点索引值的2倍加一,右子节点是父节点索引值的2倍加二 堆...
    99+
    2024-04-02
  • 如何掌握时间复杂度与空间复杂度
    这篇文章主要讲解了“如何掌握时间复杂度与空间复杂度”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何掌握时间复杂度与空间复杂度”吧!前言算法(Algorit...
    99+
    2024-04-02
  • 算法分类 ,时间复杂度 ,空间复杂度,优
        今天给大家带来一篇关于算法排序的分类,算法的时间复杂度,空间复杂度,还有怎么去优化算法的文章,喜欢的话,可以关注,有什么问题,可以评论区提问,可以与我私信,有什么好的意见,欢迎提出. 前言: 算法的复杂度分为时间复杂度与空间复杂...
    99+
    2023-01-30
    复杂度 算法 时间
  • Java详细讲解堆排序与时间复杂度的概念
    目录一、堆排序1、什么是堆排序2、堆排序思想3、代码实现二、时间复杂度分析1、初始化建堆2、排序重建堆3、总结一、堆排序 1、什么是堆排序 (1)堆排序:堆排序(Heapsort)是...
    99+
    2024-04-02
  • PHP数组打乱排序后的时间复杂度是多少?
    php数组打乱排序时间复杂度为o(n),执行时间与数组大小成正比。实战案例:创建数组使用shuffle函数打乱排序打印打乱排序后的数组 PHP 数组打乱排序:时间复杂度分析和实战案例 ...
    99+
    2024-05-01
    时间复杂度 o(n)
  • Java 精炼解读时间复杂度与空间复杂度
    目录前言:一、算法效率二、时间复杂度1.时间复杂度概念2.大O的渐进表示法计算时间复杂度  三、空间复杂度 总结:前言: 所谓的复杂度就是衡量算法的效率,衡量算发...
    99+
    2024-04-02
  • Java时间复杂度与空间复杂度实例分析
    本篇内容主要讲解“Java时间复杂度与空间复杂度实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java时间复杂度与空间复杂度实例分析”吧!一、算法效率算法效率分析分为两种:第一种是时间效...
    99+
    2023-06-29
  • JavaScript时间复杂度和空间复杂度实例分析
    本篇内容主要讲解“JavaScript时间复杂度和空间复杂度实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript时间复杂度和空间复杂度实例分析”吧!前言时间复杂度和空间复杂...
    99+
    2023-07-02
  • Java时间复杂度、空间复杂度的深入详解
    目录算法效率时间复杂度什么是时间复杂度推导大 O 阶的方法算法情况计算冒泡排序的时间复杂度计算二分查找的时间复杂度计算阶乘递归的时间复杂度计算斐波那契递归的时间复杂度空间复杂度计算冒...
    99+
    2024-04-02
  • 编程技术中冒泡排序、快速排序和堆排序的时间复杂度是多少
    这篇文章主要介绍编程技术中冒泡排序、快速排序和堆排序的时间复杂度是多少,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!冒泡排序的时间复杂度:最好情况是“O(n)”,最坏情况是“O(n2)”。快速排序的的时间复杂度:最好...
    99+
    2023-06-14
  • C语言算法的时间复杂度和空间复杂度
    目录1.算法效率1.1 如何衡量一个算法的好坏1.2算法的复杂度2.时间复杂度2.1 时间复杂度的概念2.2 大O的渐进表示法2.3常见时间复杂度计算举例 3.空间复杂度4...
    99+
    2024-04-02
  • Java 关于时间复杂度和空间复杂度的深度刨析
    目录1.算法效率2.时间复杂度2.1时间复杂度的概念2.2大O的渐进表示法2.3常见时间复杂度计算2.3.1常用的时间复杂度量级2.3.2常见示例举例2.3.2示例答案及分析3.空间...
    99+
    2024-04-02
  • Python递归时间复杂度
    目录思路一:for循环思路二:递归递归也是常见算法之一,其时间复杂度一般认为O(logn),但递归算法的时间复杂度本质上是要看: 递归的次数 * 每次递归中的操作次数 举例面试题:求...
    99+
    2024-04-02
  • C语言详细解析时间复杂度与空间复杂度
    目录一、概念1.1、算法效率1.2、时间复杂度1.3、空间复杂度二、计算2.1、大O的渐进表示法2.2、时间复杂度计算2.3、空间复杂度计算三、有复杂度要求的习题一、概念 1.1、算...
    99+
    2024-04-02
  • web算法的时间复杂度和空间复杂度是什么
    这篇文章主要介绍了web算法的时间复杂度和空间复杂度是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇web算法的时间复杂度和空间复杂度是什么文章都会有所收获,下面我们一起来...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作