学习笔记
文章平均质量分 83
Recovo
这个作者很懒,什么都没留下…
展开
-
十大排序算法——冒泡排序
原理:遍历数据,一次比较2个元素,如果他们顺序错误,就交换他们的位置,重复执行以上步骤,直到按要求顺序输出。示意图:假设有哪个数据,那就需要执行n-1次遍历,每次对应的比较次数如下:实现代码(python)python:def bubble_sort(alist): n = len(alist) for i in range(n-1): #控制排序次数 ...原创 2019-06-16 09:19:56 · 142 阅读 · 0 评论 -
十大排序算法——基数排序
以下内容是个人学习笔记的整理。原理:桶排序思想。步骤:确定要比较的轮数;建立相应的桶;按照数据的个位,十位,百位把数据对应位的数放入相应的桶;桶内排序;从桶内取出数据,组成完整的有序序列。实现代码(python):def radix_sort(alist): '基数排序' if len(alist) <= 1: retu...原创 2019-06-17 16:00:41 · 441 阅读 · 0 评论 -
十大排序算法——计数排序
以下内容是个人学习笔记的整理。原理:桶排序的思想,只是桶排序的一种特例。步骤:定义一个列表,用于统计代排序列每个数据出现的次数;对上述列表元素按从左往右的顺序累加;定义一个列表,用于存放排序后的序列;从原序列最后的元素开始扫描,对应的计数列表中的值-1为排序列表的下标,对应的值为排序列表对应的值。实现代码(python):import itertoolsdef count...原创 2019-06-17 15:49:29 · 1223 阅读 · 0 评论 -
十大排序算法——桶排序
以下内容是个人学习笔记的整理。原理:将待排序的数据分到几个有序的桶里,每个桶的数据单独排序,桶内排完序后,再按顺序依次取出,组成有序序列。步骤:找出序列中的最大和最小值,目的是为了确定所需桶的数量;将数据放入相应的桶;桶内数据进行排序,可以按照快排等算法进行排序;桶内数据有序取出并合并成完整的有序序列。实现代码(python):from quick_sort import q...原创 2019-06-17 15:25:05 · 4615 阅读 · 0 评论 -
十大排序算法——归并排序
以下内容是个人学习笔记的整理。原理:通过分治思想,先把序列分解为最小序列,然后 对最小序列进行排序,对排序后的最小序列进行合并,排序,再合并,排序,直到整个序列有序。步骤:把序列分解成最小序列(2个元素);对最小序列进行排序;重复以上步骤,直到整个序列有序。示意图:实现代码(python):def merge_sort(alist): '归并排序' n = ...原创 2019-06-17 14:37:23 · 417 阅读 · 0 评论 -
十大排序算法——快速排序
以下内容为个人学习笔记的整理。原理:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,使用的是分治的思想,分而治之。步骤:从序列中挑出一个元素作为“基准(pivot)” ;序列中剩余元素与pivot进行比较,比pivot小的放在pivot的左边,比pivot大的放在pivot的右边,相同元...原创 2019-06-17 14:22:24 · 180 阅读 · 0 评论 -
十大排序算法——希尔排序
以下为个人学习笔记的整理原创 2019-06-17 11:00:03 · 200 阅读 · 0 评论 -
十大排序算法——选择排序
原理:首先在未排序序列中,找到最小(大)的元素,放在序列起始位置,然后从剩余未排序序列中,寻找最小(大)的元素,放在已排序序列末尾,直到所有元素排序完毕。示意图,动画:实现代码(python):def select_sort(alist): '选择排序' n = len(alist) for j in range(n-1): min_index ...原创 2019-06-16 11:37:32 · 139 阅读 · 0 评论 -
十大排序算法——插入排序
原理:通过构建有序序列,对于未排序的数据,通过从后往前扫描有序序列,找到相应位置并插入。动画:实现代码(python):def insert_sort(alist): '插入排序' n = len(alist) for i in range(1, n): #选择第一个数据(下标为0))当做有序序列进行比较 while i > 0: ...原创 2019-06-16 11:02:02 · 139 阅读 · 0 评论 -
二分查找
以下内容是个人学习笔记的整理。原理:每次查找后,查找范围都折半,一步步缩小查找范围,直到找到要查找的元素。步骤:初始化头尾指针,并计算出中间下标;中间下标所对应的元素与目标值对比,如果刚好等于目标值,则返回;如果大于目标值,则左指针更新为中间下标+1;如果小于目标值,则右指针更新为中间下标-1;如果遍历完整个序列都没有找到,返回-1。实现代码(python):# -*- c...原创 2019-06-18 10:30:28 · 141 阅读 · 0 评论