Python算法
书院二层楼
这个作者很懒,什么都没留下…
展开
-
Python二分法查找的原理和各种实现方案
"""二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。"""..原创 2020-11-25 20:18:06 · 312 阅读 · 1 评论 -
Python选择排序的原理和实现
"""选择排序是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的.原创 2020-11-25 15:28:27 · 272 阅读 · 0 评论 -
Python冒泡排序原理和实现
"""冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每..原创 2020-11-25 15:26:36 · 382 阅读 · 0 评论 -
Python归并算法原理和实现
"""归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。"""def merge_sort(mlist): if len(mlist) <=1: return mlist #递归分解 interval = len(ml..原创 2020-11-25 15:23:58 · 374 阅读 · 0 评论 -
Python快速排序原理和实现案例
def quick_sort(mlist,start,end): """ :param mlist: :param start: :param end: :return: 快速排序,又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外 一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归.原创 2020-11-25 11:01:01 · 282 阅读 · 0 评论 -
Python希尔排序的原理和实现
def shell_sort(my_list): """ :param my_list: :return: 希尔排序是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多, 当增量减至1时,整个文件恰被分成一组,算法便终止。 希尔排序的基本思想是:将数组列在一个表中并对列分别进行插.原创 2020-11-24 15:53:10 · 203 阅读 · 0 评论 -
Python实现插入排序的不同方法
"""插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。"""#第一次尝试def insert_sort1(my_list): for i in range(1,len(my_list)): insert_element = i for j in range(i,0,-1):..原创 2020-11-24 11:55:14 · 180 阅读 · 0 评论