
Algorithm
秋风铁马
行百里者半九十
展开
-
搜索算法——二分法查找的两种Python3实现方法
在搜索算法中,二分法查找是一种基础的、简单而高效的算法,又称为折半查找。顾名思义,就是将待查表一分为二,从而减少了查找次数,提高了效率。但缺点就是待查表必须为顺序表,并且,待查表在查找时不宜做增删操作。 其最优时间复杂度为O(1),最坏时间复杂度为O(logn)。 # coding:utf-8 方法一:递归法 def binarySearch_01(listx, item): """Be of recursion""" length = len(listx) if length &g原创 2020-08-20 04:18:41 · 432 阅读 · 0 评论 -
“分治法”的经典应用—归并排序算法的python实现
归并排序算法采用分治法,先递归分解数组,再合并数组。 代码内部流程比较繁琐,需要保持清晰的思路,才能理解其中的原理。如果第一遍尝试有困难,不妨再多推演两遍。 其排序流程演示图如下: Python3实现代码如下: # coding:utf-8 def mergeSort(listx): length = len(listx) if length <= 1: return listx #数组分割线: split = length // 2 #递归原创 2020-08-19 20:35:32 · 282 阅读 · 1 评论 -
快速排序算法的两种python实现
快速排序算法在本例中涉及到函数的递归调用,细节处有些绕,需要理解调用的流程。 可能遇到的异常: 1、死循环;2、list index out of range; 解决思路:参数较多,可仔细检查参数使用是否出现混乱。 # coding:utf-8 """ 起止下标: :param begin, end: 前后游标:small, large """ def quickSort(listx, begin, end): if begin >= end: return small原创 2020-08-18 20:40:21 · 233 阅读 · 0 评论 -
插入排序和希尔排序算法各自两种Python实现方法
一、插入排序算法: # coding:utf-8 def insert_sort(alist): n = len(alist) for j in range(1, n): #Means01:(方法一) # for i in range(j,0,-1): # if alist[i] < alist[i-1]: # alist[i],alist[i-1] = alist[i-1],alist[i]原创 2020-08-18 01:49:42 · 156 阅读 · 0 评论