漫谈python中的搜索/排序

本文揭示Python如何通过内置函数简化数据结构如排序、查找等操作,利用timsort和hash查找提升效率,以及使用字典实现快速查找。通过实际代码示例直观展示Python的强大之处。

    在数据结构那一块,搜索有顺序查找/二分查找/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_list Out[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在后面做了多少事情。

 

转载于:https://www.cnblogs.com/alexkn/p/4462608.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值