美文网首页
算法4 读书笔记

算法4 读书笔记

作者: hh2020 | 来源:发表于2020-12-04 09:47 被阅读0次

1.二分查找的迭代实现

#pragma warning(disable:4996)

#include <stdio.h>

/*二分查找的递归实现*/

int rank(int key, int* a, int lo, int hi)

{

if (lo > hi) return -1;

int mid = lo + (hi - lo) / 2;

if (key < a[mid]) return rank(key, a, lo, mid - 1);

else if (key > a[mid]) return rank(key, a, mid + 1, hi);

else return mid;

}

int main(void) {

int a[12] = { 1,3,5,6,7,8,9,10,15,17,18,19 };

int key = 10;

int b = rank(10, a, 0, 12);

printf("%d", b);

return 0;

}

java版本(对比不同,C版本的我去掉了第一个函数,java是调用重载函数):

package oj;

public class aj {

public static int rank(int key, int[] a) {

return rank(key, a, 0, a.length - 1);

}

public static int rank(int key, int[] a, int lo, int hi) {

if (lo > hi)

return -1;

int mid = lo + (hi - lo) / 2;

if (key < a[mid])

return rank(key, a, lo, mid - 1);

else if (key > a[mid])

return rank(key, a, mid + 1, hi);

else

return mid;

}

public static void main(String[] args) {

int[] a = { 1, 3, 5, 6, 7, 8, 9, 10, 15, 17, 18, 19 };

int key = 10;

int b = rank(10, a);

System.out.println(b);

}

}

2.Java eclipse命令行输入参数的方法

空白处进行右击>Run as>Run configurations,选择“Arguments”部分,输入一组参数,然后Run。

补充:这种情况下通过命令行得到的参数都是字符串类型的,要进行四则运算,必须先转换成数值类型。使用Integer类中的类方法parseInt(),可以将小括号里的字符串转化为整型。Flaot.parseFloat()与Double.parseDouble()方法分别把小括号里的字符串转化为单精度实数与双精度实数。

3.eclipse【算法4】环境配置

1.点击new →Java project→右击项目->properties->java Build Path ->Libraries,鼠标点到ClassPath->点开Add External JARs然后找到你存放algs4.jar、stdlib.jar的位置,导入即可。

右键项目new一个class命名为Test

下边是测试程序代码

package suanfates;

import edu.princeton.cs.algs4.StdDraw;

public class Test {

public static void main(String[] args) {

  int N = 100;

        StdDraw.setXscale(0, N); //StdDraw就是algs4中的类

        StdDraw.setYscale(0, N*N);

        StdDraw.setPenRadius(.01);

        for(int i = 1; i <= N; ++i) {

            StdDraw.point(i, i);

            StdDraw.point(i, i*i);

            StdDraw.point(i, i*Math.log(i));

        }

}

}

4.import edu.princeton.cs.algs4.StdOut;

5.改变console控制台输出字体大小  window→preferences→搜索【Colors and Fonts】→【Debug】→edit

改变代码字体大小 window→preferences→搜索【Colors and Fonts】→【Java】→edit

6.sysout然后按alt+/可以直接打出System.out.println

7.讲一个正整数n用二进制表示并转化为一个string类型的值s,Java有内置方法Integer.toBinaryString(n)专门完成这个任务,以下是另一种方法:

int n;

String s = "";

for (n = 50; n > 0; n /= 2)

s = (n % 2) + s;

System.out.println(s);

import java.util.Arrays;

import edu.princeton.cs.algs4.StdOut;

import edu.princeton.cs.algs4.In;

import edu.princeton.cs.algs4.StdDraw;

import edu.princeton.cs.algs4.StdIn;

8.使用同一个包的另一个类   import 包名.类名

Exception in thread "main" java.lang.IllegalArgumentException: Could not open %

at edu.princeton.cs.algs4.In.<init>(In.java:196)

at edu.princeton.cs.algs4.In.readInts(In.java:597)

at suanfates.Whitelist.main(Whitelist.java:11)

Caused by: java.net.MalformedURLException: no protocol: %

at java.net.URL.<init>(Unknown Source)

at java.net.URL.<init>(Unknown Source)

at java.net.URL.<init>(Unknown Source)

at edu.princeton.cs.algs4.In.<init>(In.java:182)

... 2 more

相关文章

  • 算法4 读书笔记

    1.二分查找的迭代实现 #pragma warning(disable:4996) #include /*二分查找...

  • 读书笔记

    读书笔记/人生算法之无知、衰朽和贪婪 【标题】人生算法之无知、衰朽和贪婪 【书籍】人生算法 【01】人生算法之无知...

  • 《创新算法》第一章创新技术 读书笔记-2

    wordpress原文链接:《创新算法》第一章创新技术 读书笔记-2 之前已经发表了《创新算法》第一部分读书笔记《...

  • 《算法图解》note 10 K近邻算法

    这是《算法图解》第十篇读书笔记,内容主要是K邻近算法的介绍。 1.K近邻算法简介 K近邻算法(K-nearest ...

  • 读书笔记

    读书笔记/人生算法十八关之第四-九关 【标题】人生算法十八关之四到九关 【书籍】人生算法 【01】人生算法十八关之...

  • VUCA时代的主算法:自我驱动

    ——《终极算法》读书笔记 V(volatility)C(uncertainty)U(comple...

  • 读书笔记

    读书笔记/人生算法十八关之片面、狭隘与模糊 【标题】人生算法十八关之片面、狭隘与模糊 【书籍】人生算法 【01】人...

  • 读书笔记

    读书笔记/人生算法十八关之孤独、爆仓、迷信 【标题】人生算法十八关之孤独、爆仓、迷信 【书籍】人生算法 【01】人...

  • 算法图解读书笔记

    date: 2017-9-16 11:11:15title: 算法图解读书笔记 算法图解: http://www....

  • 算法图解 读书笔记

    date: 2017-9-16 11:11:15title: 算法图解读书笔记 算法图解: http://www....

网友评论

      本文标题:算法4 读书笔记

      本文链接:https://www.haomeiwen.com/subject/vdhlwktx.html