排序算法
文章平均质量分 68
编号1993
这个作者很懒,什么都没留下…
展开
-
排序 5 - 快速排序
参考:排序 0 - 前言百度百科:快速排序算法快速排序(quick sort)工作原理每次遍历都将待排序序列分成两部分,其中一部分的数据均比另一部分的数据小,递归遍历这两个子序列,同样分成两部分,依次类推,直到成为有序序列算法思想快速排序算法可以通过递归函数实现,一次从小到大排序的递归操作如下所示:获取待排序序列的前后下标 i 和 j设置比较值 key = 下标 i 的值从后向前进行遍历,判断原创 2017-10-06 13:55:35 · 372 阅读 · 0 评论 -
排序 9 - 堆排序
参考:排序 0 - 前言百度百科:堆排序【Python排序搜索基本算法】之堆排序【坐在马桶上看算法】算法11:堆——神奇的优先队列(上)【坐在马桶上看算法】算法12:堆——神奇的优先队列(下)python数据结构之二叉树的实现堆排序(heap sort)关键名词参考:二叉树完全二叉树二叉树:每个节点最多有两个子树的树结构完全二叉树:叶节点只能出现在最下层和次下层,并且最下面一层的节点都集中在该层原创 2017-10-13 12:02:18 · 573 阅读 · 0 评论 -
排序 8 - 基数排序
参考:排序 0 - 前言百度百科:基数排序基数排序(radix sort)工作原理针对 基数 进行排序,找出待排序列表的最大值,判断它的位数,比如 123 的位数为 3,先对个位数进行排序,遍历待排序列表,将个位数相同的值放在一起,即放在编号 0-9 的 桶 中,排序完成后,按顺序连接 0-9 桶中的值;再对十位数的值进行排序,同样放入 0-9 的 桶 中;依此类推,遍历所有位数基数排序又称为 桶子原创 2017-10-11 19:22:18 · 647 阅读 · 0 评论 -
排序 4 - 冒泡排序
参考:排序 0 - 前言百度百科:冒泡排序冒泡排序(bubble sort)工作原理重复遍历待排序序列,从后向前进行遍历,相邻元素两两比较大小,符合判定条件则进行交换,每次遍历均得到一个最小(或者最大)的数据算法思想设待排序序列大小为 n,共遍历 n-1 次,i 表示当前遍历的次数,也表示已排序序列的终止位置和待排序序列的起始位置,从后向前两两进行比较,符合条件则进行数据交换,每次均遍历整个待排序序原创 2017-10-06 13:10:19 · 411 阅读 · 0 评论 -
排序 3 - 折半插入排序
参考:排序 0 - 前言百度百科:折半插入排序百度百科:二分法插入排序折半插入排序(binary insert sort)工作原理对插入排序算法的改进,针对已排序序列,利用 二分法 进行数据查找,将待排序数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。算法思想设待排序序列大小为 n,共遍历 n-1 次,i 表示当前遍历的次数,也表示已排序序列的终止位置和待排序序列的起始位置。原创 2017-10-06 13:07:22 · 666 阅读 · 0 评论 -
排序 2 - 插入排序
参考:排序 0 - 前言百度百科:插入排序插入排序(insert sort)工作原理将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。算法思想设待排序序列大小为 n,从头到尾共遍历 n-1 次,i 表示当前遍历的次数,也表示已排序序列的终止位置和待排序序列的起始位置,获取下标为 i 的值在已排序序列中的位置,将该值移动到该位置Python 算法实现# -*- coding原创 2017-10-05 20:43:20 · 366 阅读 · 0 评论 -
排序 1 - 选择排序
参考:排序 0 - 前言百度百科:选择排序选择排序(selection sort)工作原理每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置(或末尾),直到全部待排序的数据元素排完。算法思想设待排序序列大小为 n,从头到尾共遍历 n-1 次,i 表示当前遍历的次数,也表示已排序序列的终止位置和待排序序列的起始位置,从下标 i 开始在待排序序列中找出最小(或最大)的元素的下标原创 2017-10-05 20:37:36 · 292 阅读 · 0 评论 -
排序 7 - 希尔排序
参考:排序 0 - 前言百度百科:希尔排序希尔排序(shell sort)工作原理直接插入排序的改进,设置步长,对间隔步长大小的数据进行直接插入排序,不断减小步长,直至步长大小为 1。也称为缩小增量排序算法思想通常初次设置步长大小为 n/2,之后每次取步长大小的一半,每次均对序列进行遍历,对间隔步长大小的数据进行直接插入排序Python 算法实现# -*- coding: utf-8 -*-"""原创 2017-10-10 12:02:48 · 553 阅读 · 0 评论 -
排序 6 - 归并排序
参考:排序 0 - 前言百度百科:归并排序归并排序(merge sort)工作原理将序列分为若干个子序列(子序列均有序),两两子序列进行 归并操作,得到一个新的有序列表,最终归并所有子序列,得到一个递增或递减的序列归并操作从左到右逐个比较两个子序列中的元素大小,比如进行递增排序,将较小的元素加入结果序列中,其下标加 1,继续和另一个序列元素进行比较,直到某一个序列元素已经全部遍历为止,将另一个序列的原创 2017-10-10 12:00:55 · 513 阅读 · 0 评论 -
排序 0 - 前言
学习排序的基本概念和评判标准学习多种排序算法利用 python 2.x 语言实现百度百科:排序算法排序:对一个序列,按照数字的大小,进行递增或者递减的排列的操作评判标准包括 稳定性,时间复杂度 和 空间复杂度稳定性如果序列中同样大小的元素的相对位置在排序过后仍旧保持不变,则该排序算法是稳定的。比如,原始序列为 (3,1) (2,2) (3,3) (1,4) (括号内第一个元素表示值,第二个表示下标)原创 2017-10-05 20:32:59 · 464 阅读 · 0 评论