上一页 1 ··· 88 89 90 91 92 93 94 95 96 ··· 114 下一页
摘要: 堆排序是使用二叉堆实现的优先队列来进行排序的。 先介绍几个概念: 第一个是优先队列,优先队列是一种数据结构,它支持两种操作:删除最大元素和插入元素。 第二个是二叉堆,二叉堆是一种数据结构,它能够很好的实现优先队列的基本操作。它使用一个数组来保存数据,在这个数组中,每个元素都要保证大于等于另两个特定位 阅读全文
posted @ 2018-05-19 22:12 Sempron2800+ 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 如果在各种排序算法中,只学一种,那这种算法就是快速排序。 正如它的名字,快速排序很快速,性能很好。而它也被评为“二十世纪十大最伟大的算法”之一。 下面就来学习一下这个算法到底是怎么样的吧。 直接给出一种实现代码: private int Division(int[] list, int left, 阅读全文
posted @ 2018-04-15 15:26 Sempron2800+ 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 归并排序的核心操作,是将两个有序数组归并成一个更大的有序数组。 在这种思想下,通过递归的方式进行处理,就得到了归并排序。 首先我们写一个用来将两个有序数组归并(合并)为一个大数组的方法。 public static void MergeTwoArray(int[] a,int[] b,int[] c 阅读全文
posted @ 2018-04-13 21:03 Sempron2800+ 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 希尔排序是插入排序的一个变种。对于大规模乱序数组插入排序很慢,因为它只会交换相邻的元素,因此元素只能一点一点地从数组的一端移动到另一端。希尔排序为了加快速度简单地改进了插入排序,交换不相邻的元素以对数组的局部进行排序,并最终用插入排序将局部有序的数组排序。 先看一段希尔排序的实现的代码: publi 阅读全文
posted @ 2018-04-12 23:22 Sempron2800+ 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 本篇介绍第二种排序算法,插入排序。 插入排序一般举的例子是“整理手牌”,从牌堆中摸一张牌,放在手里,按照顺序整理好,一般是将新摸到的牌和手中已有的牌依次比较,可以从小到大也可以从大到小。然后选择合适的位置“插入”。 先看完整的代码实现,这个代码是从大到小(逆序)的方式进行比较的: public st 阅读全文
posted @ 2018-04-11 14:32 Sempron2800+ 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 我们在学习算法时,经常遇到的一个问题是,看的懂但是写不出来。究其原因,是没有理解到位。 那么怎么才能理解到位呢?我认为关键是“分解”,就是把算法中的节点按层次和步骤分解出来。 一步一步的实现。 今天先来分解一下排序算法中的一个算法——选择排序。 为什么叫选择排序呢? 一种最简单的排序算法是这样的:首 阅读全文
posted @ 2018-04-11 10:49 Sempron2800+ 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2018-03-26 16:39 Sempron2800+ 阅读(129) 评论(0) 推荐(0) 编辑
摘要: https://leetcode.com/problems/largest-palindrome-product/description/ 阅读全文
posted @ 2017-09-25 18:55 Sempron2800+ 阅读(132) 评论(0) 推荐(0) 编辑
摘要: https://leetcode.com/problems/combination-sum-iv/#/description 阅读全文
posted @ 2017-06-09 09:18 Sempron2800+ 阅读(121) 评论(0) 推荐(0) 编辑
摘要: https://leetcode.com/problems/longest-repeating-character-replacement/#/description 阅读全文
posted @ 2017-06-09 09:16 Sempron2800+ 阅读(131) 评论(0) 推荐(0) 编辑
上一页 1 ··· 88 89 90 91 92 93 94 95 96 ··· 114 下一页