摘要: 算法思路:步骤:1. 创建10个队列(0-9) 2. 遍历每个数位,按照位数存入不同的桶中 3. 然后再将桶中的元素依次取出,放回到原有列表中 ... 阅读全文
posted @ 2018-10-25 14:52 fanmleii 阅读(148) 评论(0) 推荐(0)
摘要: 算法思路:我们之前提到过计数排序,计数排序在某些情况下并不太适合,例如元素范围太大的情况,桶排序算是对于计数排序的一种改进,桶排序首先根据元素大小放置到不同的桶中,然后在对每一个桶内元素进行排序。例如数组[29,25,3,49,9,37,21,43],可以以10为区间... 阅读全文
posted @ 2018-10-24 23:59 fanmleii 阅读(345) 评论(0) 推荐(0)
摘要: 算法思路:顾名思义计数排序就是统计每个数出现的次数,例如给0-20范围内的数排序,首先建立一个长度为21的空数组,然后统计每个数出现的次数,再按照下标存入空数组中,例如1出现10次那么数组中的第二个元素为10 ,统计完所有的数之后呢在新建一个数组,在遍历之前存放次数的... 阅读全文
posted @ 2018-10-24 17:39 fanmleii 阅读(230) 评论(0) 推荐(0)
摘要: 算法思路:希尔排序算是插入排序的一种,是改进版的直接插入排序,和直接插入排序不同的是它是按组进行插入排序的。步骤如下:取一个整数d1 = n / 2,将元素分成d1个组,每组相邻元素之间距离d1,然后在每组内部进行直接插入排序。 取第二个整数d2 = d1 / 2再将... 阅读全文
posted @ 2018-10-24 16:53 fanmleii 阅读(134) 评论(0) 推荐(0)
摘要: 算法思路:简单来说归并排序就是将两个有序的序列合并成一个完整的有序序列。具体步骤如下: 1. 选取序列1的第一个元素和序列2的第一个元素,较小的存放到新序列的第一位 2. 选序列1的第二个元素再和序列2的第一个元素比较,选较小的... 阅读全文
posted @ 2018-10-24 03:08 fanmleii 阅读(170) 评论(0) 推荐(0)
摘要: 算法思路:堆:分为大根堆和小根堆 大根堆:一棵完全二叉树,满足任意一节点都比其孩子节点大。 小根堆:一棵完全二叉树,满足任意一节点都比其孩子节点小。堆排序流程: 构造堆 得到堆顶元素,为最大元素 去掉堆顶,将堆的最后一个元素放到堆顶,然后调整重... 阅读全文
posted @ 2018-10-23 18:20 fanmleii 阅读(123) 评论(0) 推荐(0)
摘要: 算法思路快速排序差不多是面试中问的最多的一种排序算法了,快排是比较容易理解的,核心思路就是,选取一个数作为基准,将原来的列表分为两个部分,一部分全部小于这个基准数,另外一部分全部大于这个基准数,然后呢再按照这个方法对划分出来的两部分继续做同样的操作,直到无法划分的时候... 阅读全文
posted @ 2018-10-23 15:00 fanmleii 阅读(146) 评论(0) 推荐(0)
摘要: 算法思路插入排序就跟我们打扑克抽牌是一样的形式,每次新抽的牌插入到已有的有序牌中,是牌始终保持有序状态,例如[1,3, 2,4,0] 数组,先将1作为起始牌,下一张牌为3,第一趟完成后变成[1, 3]有序数组和[2,4,0]无序数组,接下来插入2,有序数组变成[1,2... 阅读全文
posted @ 2018-10-22 16:54 fanmleii 阅读(115) 评论(0) 推荐(0)
摘要: 直接选择排序算法思路:第 1 趟,在待排序记录 r1 ~ r[n]中选出最小的记录,将它与 r1 交换;第 2 趟, 在待排序记录 r2 ~ r[n]中选出最小的记录,将它与 r2 交换;以此类推,第 i 趟在待排序 记录 r[i] ~ r[n]中选出最小的记录,将它... 阅读全文
posted @ 2018-10-22 13:41 fanmleii 阅读(209) 评论(0) 推荐(0)
摘要: 冒泡排序思路:列表中的每两个相邻的数,如果前面比后面的大,则交换这两个数。直到列表变为有序的时候为止,例如下面这个列表 [ 2, 1, 3, 0, 7, 6, 5, 4]第一趟: 第一步:列表的第一位... 阅读全文
posted @ 2018-10-18 21:39 fanmleii 阅读(246) 评论(0) 推荐(0)