算法第四版
RGBMarco
时间能证明一切,如果不能帮助到别人,那就记录自己!
展开
-
算法第四版 练习1.3.35
RandomQueue.javaimport edu.princeton.cs.algs4.StdRandom;public class RandomQueue<Item> { private Item[] item; private int N; public RandomQueue() { item = (Item[])(new Object[10原创 2017-07-27 10:33:47 · 740 阅读 · 2 评论 -
优先队列(二叉堆实现) + 堆排序
优先队列public class Priority_queue { private int[] a; private int count; Priority_queue(int[] b) { a = new int[b.length + 1]; for (int i = 1; i < a.length; ++i)原创 2017-08-05 15:18:32 · 420 阅读 · 0 评论 -
算法第四版 1.3.40(前移编码)
MoveToFont.javapublic class MoveToFont { private class Node { Node next = null; String data; } Node head = null; private boolean isRepeat(String s) { if原创 2017-07-27 18:36:27 · 1153 阅读 · 0 评论 -
算法第四版 练习 1.3.39
RingBuffer.javapublic class RingBuffer<Item> { private Item[] item; private int read; private int write; public RingBuffer(int cap) { item = (Item[])(new Object[cap]);原创 2017-07-27 17:07:22 · 592 阅读 · 0 评论 -
快速排序(演化版by数组)
基础原始快速排序(进行了优化,保持了稳定性)import edu.princeton.cs.algs4.StdOut;import edu.princeton.cs.algs4.StdRandom;public class QuickSort { private int[] a; public QuickSort(int N) { a = new int[N原创 2017-08-04 14:41:23 · 293 阅读 · 0 评论 -
算法第四版 练习 1.3.34
RandomBag.javaimport java.util.Iterator;import edu.princeton.cs.algs4.StdRandom;public class RandomBag<Item> implements Iterable<Item>{ private Item[] item; private int N; @SuppressWarnings原创 2017-07-26 20:35:00 · 911 阅读 · 0 评论 -
算法第四版 练习1.3.33
Deque.javaimport java.util.Iterator;public class Deque<Item> implements Iterable<Item>{ private class DoubleNode<Item> { private DoubleNode<Item> next = null; private DoubleNode原创 2017-07-26 18:57:33 · 379 阅读 · 0 评论 -
算法第四版 练习1.3.31
DoubleLinkList.javaimport edu.princeton.cs.algs4.StdOut;public class DoubleLinkList<Item> { private class DoubleNode<Item> { private DoubleNode<Item> next = null; private Double原创 2017-07-26 15:22:15 · 452 阅读 · 0 评论 -
归并排序(演化版by数组)
原始归并排序: 自顶向下:Rsort() 自底向下:sort()import edu.princeton.cs.algs4.StdOut;import edu.princeton.cs.algs4.StdRandom;public class MergeSort { private int[] a; private int[] aux;//辅助 auxiliary原创 2017-08-03 15:02:02 · 365 阅读 · 0 评论 -
union-find算法(路径压缩+加权quick-union算法 数组实现)
算法第四版曾提过,通过路径压缩实现几乎(注意几乎)完全扁平化的树,为何我要说注意几乎,因为书作者数据给的好,我通过实现发现利用 书中数据 自己将结果画图发现和加权quick-union效果一样,然后我检查代码,又上网查找发现代码没错,原来是我理解有误,错误就在几乎这两个字上 注意这图和我上篇博文中的加权quick-union效果一样(上篇博文入口),按照我的错误理解效果应该是除了6–6其他都在原创 2017-08-01 15:49:14 · 2634 阅读 · 0 评论 -
union-find算法(数组实现版)
第一种通过遍历所有节点更新根节点(使同一连通分量指向同一点):find较快 故称这种做法为quick-findQF.javaimport edu.princeton.cs.algs4.StdDraw;import edu.princeton.cs.algs4.StdOut;public class QF { private int[] id; private int count;原创 2017-08-01 13:46:14 · 655 阅读 · 0 评论 -
STL算法之变序型算法
reverse() 将元素次序逆转reverse_copy() 将逆序的元素复制到另一序列rotate() 将[first,mid)[mid,end)元素对调rotate_copy() 将rotate()后的序列复制到另一序列next_permutation() 得到元素的下一排列次序(并判断是否是全排列)prev_permutation() 得到元素的下一排列次序(并判断是否是全排列)原创 2017-07-28 15:34:48 · 467 阅读 · 0 评论