算法第四版

以下是为您整理出来关于【算法第四版】合集内容,如果觉得还不错,请帮忙转发推荐。

【算法第四版】技术教程文章

算法第四版1.4算法分析:习题1.4.14

import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.StdRandom;import java.util.Arrays;public class E1_4_14 {public static void main(String[]args){//测试是否正确int[] a={1,2,3,-6,-6,7};StdOut.println(fourSum(a));//DoublingRatio 测试速度int N=25;double prev=timeTrial(N);for (N=50;true;N+=N){double now=timeTrial(N);StdOut.printf("N=%6d time=%6.1f ratio=%4.1f\n",N,now,now/prev);prev=...

《算法》第四版2.1.14【代码】

这道题的意思是给一摞纸牌,上面标有大小的数字,让你在一定条件限制下完成排序,条件是你只能看到上面两张牌,要么交换两张牌,要么将最上面的牌放到这摞牌的底部。 从这道题的描述可以发现,纸牌的交换类似于冒泡排序。 先复习一下什么是冒泡排序。 冒泡排序通过重复地走访待排序列,发现相邻的两项顺序颠倒,就交换两项,不断循环重复,直到没有元素交换的时候(每次循环都能确定一个元素的固定位置,循环n次就能排序完成),循...

算法第四版1.3背包、队列和栈:习题1.3.48

import edu.princeton.cs.algs4.StdOut;public class E1_3_48 <Item>{public static void main(String[]args){E1_3_48<Integer> twoStackWithDeque=new E1_3_48<>();for (int i=0;i<5;i++)//将0-4压入左栈twoStackWithDeque.pushLeftStack(i);for (int i=5;i<10;i++)//将5-9压入右栈twoStackWithDeque.pushRightStack(i);for (int i:twoStackWithDeque.deque)//遍历两个栈,结果应该为4,3,2,1,0,5,6,7,8,9StdOut.print(i+" ");StdO...

算法第四版1.4算法分析:习题1.4.44

题目意思是当第一次重复的数出现时 生成的前一个数用了多少次import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.StdRandom;public class E1_4_44 {public static void main(String[]args){int N=10000;double sum=0.0;for (int i=0;i<20000;i++){//int temp=BirthdayProblem(N);sum+=temp;StdOut.printf("N=%8d find=%8d\n",N,temp);}StdOut.println("avg="+sum/20000+" expectation="+Math.sqrt(Math.PI*N/...

算法第四版1.4算法分析:习题1.4.27

import edu.princeton.cs.algs4.StdOut;public class E1_4_27 {public static void main(String[]args){Queue<Integer> queue=new Queue<>();for (int i=0;i<5;i++)//先入5个queue.enqueue(i);//出两个StdOut.print(queue.dequeue()+" ");StdOut.print(queue.dequeue()+" ");for (int i=5;i<10;i++)//再入5个queue.enqueue(i);while (!queue.isEmpty())//全出StdOut.print(queue.dequeue()+" ");}public static class Queue<Ite...

算法第四版1.5union-find:习题1.5.21

import edu.princeton.cs.algs4.StdOut;public class E1_5_21 {public static void main(String[]args){for (int N=125;true;N+=N){int cnt=RandomConnection.count(N)/2;StdOut.printf("N=%13d count=%15d 1/2NlnN=%16.1f ratio=%5.1f\n",N,cnt,1.0/2*N*Math.log(N),1.0/2*N*Math.log(N)/cnt);}} } 用到的类结合1.5.17

算法第四版1.5union-find:习题1.5.17

import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut;public class E1_5_17 {public static void main(String[]args){int N= StdIn.readInt();int cnt=RandomConnection.count(N);StdOut.printf("N=%8d count=%15d\n",N,cnt);} } import edu.princeton.cs.algs4.StdRandom;public class RandomConnection {public static int count(int N){//Union find.随机产生pair,直到所有点连在一起,返回产生的数的...

《算法第四版》环境搭建【代码】【图】

【转】:https://blog.csdn.net/artprog/article/details/52797472 博主用的是Eclipse。配置Java开发环境就省略了,下面主要说怎么在Eclipse中使用书本自带的库。 1.下载algs4.jar 点击下面的链接下载algs4.jarhttp://algs4.cs.princeton.edu/code/algs4.jar 2.配置环境 首先,将下载好的库放到自己喜欢的一个目录下,最好路径无空格无中文。然后在用户环境变量CLASSPATH中添加该库的路径,如果没有该变量请自行创建。例如我的如下...

常用排序算法总结(基于算法 第四版)【代码】【图】

1.初级排序算法 1.1我们关注的主要对象为重拍数组元素的算法。,其中每个元素有个主键,将主键按照某种方式排列。在java中元素通常都是对象,对主键描述往往通过comparable接口。 一般排序模板public class Example{public static void sort(Comparable[] a){.......}private static boolean less(Comparable v,Comparable w){ return v.compareTo(w)<0;}private static void each(Comparable[] a,int i, int j){ Comparable t=a[i...

《算法》第四版随笔【代码】

此博客连接: 字符串 字符串拼接 + 类型转换 整型转字符串int a=6; String str=toString.value(a);字符串转整型String str="123" int a=Integer.parseInt(str)在Java中,连接字符串的时候会自动讲任意数据类型的值转换为字符串,如果+后的第一个参数时字符串类型,那么Java会自动将其他参数都转换为字符串类型。