
python算法
wardseptember
https://wardseptember.gitee.io/mynotes/#/
展开
-
冒泡排序——python
from __future__ import print_function #在Python2环境下print必须按照python3方式书写,如print("good")def bubble_sort(collection): """ 完全用python实现冒泡排序 得到升序的结果 算法思想: 依次比较相邻元素的大小,大原创 2018-08-04 09:41:37 · 262 阅读 · 0 评论 -
快速排序2——python
from __future__ import print_functiondef quick_sort(ARRAY): """ 快速排序:不稳定, 算法思想: 首先在要排序的序列 a 中选取一个中轴值,而后将序列分成两个部分, 其中左边的部分 b 中的元素均小于或者等于 中轴值,右边的部分 c 的元素 均大于或者等于中轴值,而后通过递归调用快...原创 2018-08-30 21:45:20 · 221 阅读 · 0 评论 -
快速排序1——python
from __future__ import print_functiondef quick_sort_3partition(sorting, left, right): """ 快速排序:不稳定, 算法思想: 首先在要排序的序列 a 中选取一个中轴值,而后将序列分成两个部分, 其中左边的部分 b 中的元素均小于或者等于 中轴值,右边的部分 c ...原创 2018-08-30 21:44:01 · 423 阅读 · 0 评论 -
煎饼排序——python
from __future__ import print_functiondef pancakesort(arr): ''' 煎饼排序(默认升序) 算法思想: 每次循环找到元素最大值,然后将其翻转到列表首位, 再对整个列表进行翻转,将它翻转到列表最后的位置。 每次循环就有一个元素归位,所以将待比较的元素总 数减一,即剔除归位的元素 ...原创 2018-08-30 21:42:16 · 1054 阅读 · 0 评论 -
插入排序——python
from __future__ import print_functiondef insertion_sort(collection): """ 插入排序 算法思想: 初始时,只考虑数组下标0处的元素,只有一个元素,显然是有序的。 然后第一趟 对下标 1 处的元素进行排序,保证数组[0,1]上的元素有序; 第二趟 对下标 2 处的元素进行排序...原创 2018-08-08 22:00:16 · 183 阅读 · 0 评论 -
二路归并排序——python
from __future__ import print_functiondef merge_sort(collection): """ 二路归并排序(稳定排序),结果升序 算法思想: 二路归并排序主旨是“分解”与“归并” 分解: 1.将一个数组分成两个数组,分别对两个数组进行排序。 2.循环第一步,直到划分出来的“小数组”只包...原创 2018-08-11 23:17:12 · 1373 阅读 · 0 评论 -
圈排序——python
所谓的圈的定义,我只能想到用例子来说明,实在不好描述待排数组[ 6 2 4 1 5 9 ]排完序后[ 1 2 4 5 6 9 ]数组索引[ 0 1 2 3 4 5 ]第一部分第一步,我们现在来观察待排数组和排完后的结果,以及待排数组的索引,可以发现排完序后的6应该出现在索引4的位置上,而它现在却在位置0上,记住这个位置啊,一直找到某个数应该待在位置0上我们的任务就完成了...原创 2018-08-06 22:10:01 · 1266 阅读 · 0 评论 -
堆排序——python
from __future__ import print_function#调整堆的函数,此为大顶堆def heapify(unsorted, index, heap_size): largest = index #父结点 left_index = 2 * index + 1 #左孩子 right_index = 2 * index + 2 #右孩子 ...原创 2018-08-10 23:12:42 · 328 阅读 · 0 评论 -
gnome排序——python
from __future__ import print_functiondef gnome_sort(unsorted): """ 地精排序,默认升序 算法思想:定义一个变量i,如果a[i-1]<=a[i],i=i+1, 否则,则交换,并把i变为i-1,就这样来回移动索引位置, 是整个列表有序 这个排序算法是稳定的 ""&quo原创 2018-08-06 11:57:52 · 293 阅读 · 0 评论 -
cocktail_shaker 排序——python(冒泡排序改版)
from __future__ import print_functiondef cocktail_shaker_sort(unsorted): #cocktail shaker鸡尾酒调制器,估计是边喝酒边写的,就叫CS排序, #冒泡排序的改版,可对比理解 #排序结果默认升序 #range(start, stop, step) 假设len(unsorted)=...原创 2018-08-05 23:32:53 · 658 阅读 · 0 评论 -
bogo排序——python
from __future__ import print_function # 在Python2环境下print必须按照python3方式书写,如print("good")import randomdef bogosort(collection): """ 这个我也不知道叫什么排序,暂且叫bogo排序 默认升序 Examples:原创 2018-08-05 20:09:15 · 574 阅读 · 0 评论 -
计数排序——python(稳定版排序)
from __future__ import print_functiondef counting_sort(collection): """ 计数排序 算法思想: 假设要排序的数组为 A = {1,0,3,1,0,1,1}这里最大值为3,最小值为0, 那么我们创建一个数组C,长度为3+1-0=4。然后一趟扫描数组A,得到A中各个元素的总数, ...原创 2018-08-05 20:01:22 · 1249 阅读 · 0 评论 -
python基础算法总结
一些说明:这里的所有算法均用python实现,“翻译”自国外某程序员的项目。这里的“翻译”不单单指的是英译中,而且是为每个算法添加上算法思想描述和关键代码注释。中文目录(链接到我的个人博客,更佳的阅读体验)1、排序算法1.1 冒泡排序1.2 bogo排序1.3 计数排序1.4 CS排序1.5 地精排序1.6 圈排序1.7 插入排序1.8 堆排序1.9 二路归并排序...原创 2018-11-17 19:23:34 · 314 阅读 · 0 评论