算法(第4版)
文章平均质量分 70
算法描述与程序实现
普通网友
这个作者很懒,什么都没留下…
展开
-
归并排序
//归并排序:递归排序算法,将两个有序的数组归并成一个更大的有序数组,即先(递归的)将数组分成两半分别排序,然后将结果归并起来。//原地归并的抽象方法package Algorithms;import edu.princeton.cs.algs4.StdIn;import edu.princeton.cs.algs4.StdOut;public class P170_M原创 2016-10-21 20:40:05 · 766 阅读 · 0 评论 -
希尔排序
//希尔排序//希尔排序是基于插入排序的快速排序算法//希尔排序为了加快速度简单地改进了插入排序,交换不相邻的元素以对数组的局部进行排序,并最终用插入排序将局部有序的数组排序package Algorithms;import edu.princeton.cs.algs4.StdIn;import edu.princeton.cs.algs4.StdOut;public class原创 2016-10-09 11:42:36 · 595 阅读 · 0 评论 -
插入排序
//插入排序//为了给要插入的元素腾出空间,我们需要将其余所有的元素在插入之前都向右移动一位package Algorithms;import java.util.Comparator;import edu.princeton.cs.algs4.StdIn;import edu.princeton.cs.algs4.StdOut;public class P157_Inserti原创 2016-10-07 07:07:49 · 471 阅读 · 0 评论 -
选择排序
//选择排序/* * 找到数组中最小的元素,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么就和它自己交换) * 在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置 * 如此往复,直到将整个数组排序 */package Algorithms;import java.util.Comparator;import edu.princeton.cs.algs4原创 2016-10-06 17:46:59 · 327 阅读 · 0 评论 -
Bag的实现
//Bag的实现package Algorithms;import java.util.Iterator;import java.util.NoSuchElementException;import edu.princeton.cs.algs4.StdIn;import edu.princeton.cs.algs4.StdOut;public class P98_Bag impl原创 2016-10-06 09:51:10 · 614 阅读 · 0 评论 -
先进先出队列
//先进先出队列package Algorithms;import java.util.Iterator;import java.util.NoSuchElementException;import edu.princeton.cs.algs4.StdIn;import edu.princeton.cs.algs4.StdOut;public class P95_Queue im原创 2016-10-06 09:30:03 · 619 阅读 · 0 评论 -
下压堆栈 (链表实现)
//下压堆栈 (链表实现)package Algorithms;import java.util.Iterator;import java.util.NoSuchElementException;import java.util.Stack;import edu.princeton.cs.algs4.StdIn;import edu.princeton.cs.algs4.StdOu原创 2016-10-06 09:07:14 · 426 阅读 · 0 评论 -
下压(LIFO)栈(能够动态调整数组大小的实现)
//下压(LIFO)栈(能够动态调整数组大小的实现)/* * 每项操作的用时都与集合大小无关 * 空间需求总是不超过集合大小乘以一个常数 */package Algorithms;import java.util.Iterator;import java.util.NoSuchElementException;import edu.princeton.cs.algs4.StdI原创 2016-10-05 10:03:11 · 873 阅读 · 0 评论 -
泛型定容栈
//一种表示泛型定容栈的抽象数据类型package Algorithms;import java.util.Iterator;import java.util.NoSuchElementException;import edu.princeton.cs.algs4.StdIn;import edu.princeton.cs.algs4.StdOut;public class P8原创 2016-10-05 08:22:44 · 602 阅读 · 0 评论 -
Dijkstra的双栈算术表达式求值算法
//Dijkstra的双栈算术表达式求值算法/* * 将操作数压入操作数栈 * 将运算符压入运算符栈 * 忽略左括号 * 在遇到右括号时,弹出一个运算符,弹出所需数量的操作数,并将运算符和操作数的运算结果压入操作数栈 */package Algorithms;import java.util.Stack;import edu.princeton.cs.algs4.StdIn;原创 2016-10-04 17:55:38 · 807 阅读 · 0 评论 -
下压栈(Stack)
//下压栈的用例//后进先出,当用例使用foreach语句迭代遍历栈中的元素时,元素的处理顺序和它们被压入的顺序正好相反//在用集合保存元素的同时颠倒它们的相对顺序package Algorithms;import edu.princeton.cs.algs4.Stack;import edu.princeton.cs.algs4.StdIn;import edu.princeton原创 2016-10-04 17:20:06 · 484 阅读 · 0 评论 -
队列(Queue)
//队列的用例//先进先出,当用例使用foreach语句迭代访问队列中的元素时,元素的处理顺序就是他们被添加到队列的顺序//在用集合保存元素的同时保存它们的相对顺序:使它们入列顺序和出列顺序相同package Algorithms;import edu.princeton.cs.algs4.In;import edu.princeton.cs.algs4.Queue;public原创 2016-10-04 17:10:51 · 411 阅读 · 0 评论 -
Bag(背包)
//背包的典型用例//简单的计算标准输入中的所有double值的平均值和样本标准差//背包是一种不支持从中删除元素的集合数据类型——它的目的就是帮助收集元素并迭代遍历所有收集到的元素(用例也可以检查背包是否为空或者获取背包中元素的数量)package Algorithms;import edu.princeton.cs.algs4.Bag;import edu.princeton.cs原创 2016-10-04 14:20:20 · 1003 阅读 · 1 评论 -
BinarySearch(二分查找)
//二分查找package Algorithms;import java.util.Arrays;import edu.princeton.cs.algs4.In;import edu.princeton.cs.algs4.StdIn;import edu.princeton.cs.algs4.StdOut;public class P28_BinarySearch { pu原创 2016-10-04 14:01:15 · 1874 阅读 · 0 评论