
算法
九月清晨_
这个作者很懒,什么都没留下…
展开
-
从 n个长度的序列中找出前 m大个元素
1. 基本思路利用优先队列的特性(堆序), 在构建出 max堆(大顶堆)之后, 不断将堆顶的元素移除, 就能很轻松的获取前 m个最大的元素.2. 代码演示public class SortDemo { public static void main(String[] args) { int[] arr = new int[] {1, 2, 3, 4, 5, 7,...原创 2018-07-10 22:26:02 · 942 阅读 · 0 评论 -
找出一个序列中第k大的元素 [快速选择问题]
找出一个序列中第 k大的元素值原创 2018-07-10 14:29:57 · 1023 阅读 · 0 评论 -
选择排序算法分析
选择排序1. 基本思想2. 过程演示3. 代码实现4. 复杂度分析5. 总结原创 2018-07-09 22:14:51 · 352 阅读 · 0 评论 -
冒泡排序算法分析
冒泡排序1. 基本思想冒泡排序的基本思想: 对于待排序数列, 依次比较相邻元素, 若顺序相反, 则交换位置, 重复此步骤直至完成排序.2. 过程演示以 [5, 4, 3, 2, 1] 来演示整个排序过程原始序列: 5, 4, 3, 2, 1第一趟排序: 4, 5, 3, 2, 1 4, 3, 5, 2, 1 ...原创 2018-07-09 21:50:28 · 532 阅读 · 0 评论 -
Java排序算法 [快速排序]
package cn.com.dom4j.sort;public class QuickSort { /** 快速排序 在 Java中, 快速排序被用作基本数据类型的排序 (当然, 不只快速排序一种) 快速排序是实践中的一种快速的排序算法, 在 C++或对 Java基本类型的排序证特别有用. 它的平均运行时间是 O(N lo...原创 2018-04-06 16:45:03 · 229 阅读 · 0 评论 -
Java排序算法 [归并排序]
package cn.com.dom4j.sort;import java.util.Arrays;public class Test2 { /** 归并排序 这个算法的基本操作是合并两个已排序的表. 因为这两个表示已排序的, 所以若将输出放到第三个表中, 则该算法可以通过一趟排序来完成 1. 合并两个已排序的表的时间显然是线性的, 因为...原创 2018-04-06 10:42:28 · 220 阅读 · 1 评论 -
Java排序算法 [堆排序]
package cn.com.dom4j.sort;import java.util.Arrays;public class Test2 { /** * 堆排序 */ public static <AnyType extends Comparable<? super AnyType>> void heapSort(AnyType...原创 2018-04-05 11:38:33 · 204 阅读 · 1 评论 -
快速排序算法分析
1. 主要思路2. 过程演示3. 代码演示public class QuickSort { /** 快速排序 在 Java中, 快速排序被用作基本数据类型的排序 (当然, 不只快速排序一种) 快速排序是实践中的一种快速的排序算法, 在 C++或对 Java基本类型的排序证特别有用. 它的平均运行时间是 O(N l...原创 2018-07-10 22:42:36 · 274 阅读 · 0 评论