博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
漫谈python中的搜索/排序
阅读量:6262 次
发布时间:2019-06-22

本文共 555 字,大约阅读时间需要 1 分钟。

    在数据结构那一块,搜索有顺序查找/二分查找/hash查找,而排序有冒泡排序/选择排序/插入排序/归并排序/快速排序。如果遇到数据量和数组排列方式不同,基于时间复杂度的考虑,可能需要用到混合算法。如果用C语言自己写,是一个很头疼且门槛很高的过程,python却用很简单的方式,让这类算法人人可用。

       排序的话,python采用了一个sort函数,这个函数用的是一个适应性强的、稳定的、自然的归并算法,名为timsort。而查找,用字典,时间复杂度可以降低到O(1),而字典的实现方式,则是利用了hash函数,而hash查找,则用了开放寻址法。

       举两个例子,见识一下python的简洁

1.排序

In [1]: a_list=[22,33,11,9,77,22] In [2]: a_list.sort() In [3]: a_listOut[3]: [9, 11, 22, 22, 33, 77]

 

2.查找

In [5]: dict={
'key1':'hh','key2':88,'key3':'ii'}In [6]: dict['key3']Out[6]: 'ii'

 

这里可能看不出什么,因为只是简单的用法。当你自己能实现一系列数据结构并能写对应的混合算法时,你才能感受到python在后面做了多少事情。

 

转载地址:http://ydzpa.baihongyu.com/

你可能感兴趣的文章
C# Parsing 类实现的 PDF 文件分析器
查看>>
汇编学习(1)
查看>>
Google招聘 Lead Software Engineer
查看>>
Bzoj1026 windy数
查看>>
Java07
查看>>
mongodb基础知识_4
查看>>
ROP
查看>>
Windows常用网络命令技巧汇总 [转]
查看>>
【noi 2.6_8787】数的划分(DP){附【转】整数划分的解题方法}
查看>>
Win8 app判断网络连接状态
查看>>
CentOS 6.7下nginx SSL证书部署的方法分享
查看>>
菜鸟学SQLServer--数据文件和日志文件
查看>>
分享我积攒的测试相关的资料收集awesome-test
查看>>
1.2、solidworks入门1(零件建模、装配设计、工程图设计)
查看>>
SpringBoot Docker Mysql安装,Docker安装Mysql
查看>>
td中使用overflow:hidden; 无效解决方案
查看>>
Apache Flume 1.7.0 自定义输入输出
查看>>
第十周作业
查看>>
触摸事件基本介绍
查看>>
navigator.userAgent.indexOf来判断浏览器类型
查看>>