
排序算法
文章平均质量分 73
星辰小海24
Hello World
展开
-
排序算法系列之鸡尾酒排序
鸡尾酒排序1 基本原理 1 核心思想:鸡尾酒排序是冒泡排序的一种改进和变型 ,又称“双向冒泡排序”,鸡尾酒排序是从低到高然后从高到低来回排序(选出最大和最小项),比冒泡排序的效率稍微好一点,原因是冒泡排序只从一个方向进行比对(由低到高),每次循环只移动一个项目。 2 算法分析: 1. 先对数组从左到右进行冒泡排序(升序),则最大的元素去到最右端 ...原创 2018-07-16 14:44:18 · 3327 阅读 · 0 评论 -
排序算法系列之快速排序
快速排序1 基本原理 核心思想:快速排序是一种 划分交换排序 ,其采用分治的策略思想 。 算法思路: 1. 首先从待排序序列中随机取出一个数作为基准数。 2. 分区过程,将比基准数大的数全放到它的右边,小于或等于基准数的数全放到它的左边。 3. 对左右区间重复第二步,直到各区间只有一个数。2 实例说明如上图所示,参考《算法导论》...原创 2018-07-13 10:21:40 · 612 阅读 · 0 评论 -
排序算法系列之并归排序
并归排序1 基本原理 1 核心思想:归并排序,是创建在归并操作上的一种有效的排序算法,指的是将两个已经排序的序列合并成一个序列的操作。归并排序算法依赖归并操作。 2 算法分析: - 通过分治法将长度为n的序列划分为n个长度为1的子序列。 - 进行两两归并比较,得到 n/2 个长度为 2 的有序子序列 - 重复第 2 步,直到所有子序列归并成一个长...原创 2018-07-19 09:26:24 · 1734 阅读 · 0 评论 -
排序算法系列之冒泡排序
冒泡排序1 基本原理 核心思想:冒泡排序是一种典型的 交换排序 ,通过比较相邻元素大小来决定是否交换位置 2 实例说明如上图所示,以一组数据{20,40,30,10,60,50} 为例,进行冒泡排序的算法演示:第一轮:从数组第一个元素开始,依次比较相邻元素,按升序排列,最后最大元素60位于数组末尾。第二轮:重复上一步操作,降第二大元素50交换至数组倒数...原创 2018-07-12 10:36:33 · 611 阅读 · 0 评论 -
排序算法系列之堆排序
堆排序1 基本原理 1 核心思想:在堆的数据结构中,堆中的最大值总是位于根节点(在优先队列中使用堆的话堆中的最小值位于根节点),堆排序就是把最大堆堆顶的最大数取出,将剩余的堆继续调整为最大堆,再次将堆顶的最大数取出,这个过程持续到剩余数只有一个时结束。 ** 算法分析:    1. 最大堆调整(Max-Heapify):将堆的末端子节点作调整,使得...原创 2018-07-18 10:24:14 · 371 阅读 · 0 评论 -
排序算法系列之选择排序
选择排序1 基本原理 1 核心思想:选择排序是一种简单直观的排序算法。它在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。2 实例说明如上图所示,以一组数据{12,6,1,15,3,19} 为例,进行直接插入排序的算法演示:在原数组中选择最小元素...原创 2018-07-18 09:23:33 · 912 阅读 · 0 评论 -
排序算法系列之桶排序
桶排序1 基本原理 1 核心思想:桶排序工作的原理是将数组分到有限数量的桶里。每个桶再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。最后依次连接各桶完成排序。 2 算法分析: - 设置一个定量的数组当作空桶子。 - 遍历序列,并且把项目一个一个放到对应的桶子去。 - 对每个不是空的桶子分别进行排序。...原创 2018-07-23 11:07:16 · 478 阅读 · 0 评论 -
排序算法系列之基数排序
基数排序1 基本原理 1 核心思想:基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。 2 算法分析: - 将所有待比较数值(正整数)统一为同样的数位长度(最大元素长度),数位较短的数前面补零。 - 从最低位开始,依次进行一次排序。 - 重复操作,直至完成最高位的排序。2 ...原创 2018-07-23 10:48:07 · 431 阅读 · 0 评论 -
排序算法系列之希尔排序
希尔排序1 基本原理 1 核心思想:希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。 2 算法分析: 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。2 实例说明如上图所示,以一组数据{...原创 2018-07-17 11:01:14 · 795 阅读 · 0 评论 -
排序算法系列之直接插入排序
直接插入排序1 基本原理 1 核心思想:插入排序通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入 ,如此重复,直至完成序列排序。 2 算法分析: 1. 从序列第一个元素开始,该元素可以认为已经被排序 2. 取出下一个元素,设为待插入元素,在已经排序的元素序列中从后向前扫描,如果该元素(已排序)大于待插入元素,将...原创 2018-07-17 10:03:13 · 63785 阅读 · 9 评论 -
排序算法系列之计数排序
计数排序1 基本原理 1 核心思想:计数排序是一种稳定的线性时间排序算法。计数排序使用一个额外的数组 C ,其中第i个元素是待排序数组 A中值等于 i的元素的个数。然后根据数组 C 来将 A中的元素排到正确的位置。 2 算法分析: - 找出待排序的数组中最大和最小的元素。确定数组大小C[max-min+1]。 - 统计数组中每个值为 ...原创 2018-07-20 15:01:50 · 321 阅读 · 0 评论