untitled

Similar documents
ALG ppt

アルゴリズムとデータ構造1

ALG ppt

ALG ppt

新・明解Java入門

アルゴリズムとデータ構造1

Microsoft PowerPoint ppt

untitled

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

226

ALG2012-C.ppt

ALG2012-A.ppt

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

untitled

文字列操作と正規表現

アルゴリズムとデータ構造1

10K pdf

Java演習(4) -- 変数と型 --

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

K227 Java 2

Java (5) 1 Lesson 3: x 2 +4x +5 f(x) =x 2 +4x +5 x f(10) x Java , 3.0,..., 10.0, 1.0, 2.0,... flow rate (m**3/s) "flow

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

明解Javaによるアルゴリズムとデータ構造

「Android Studioではじめる 簡単Androidアプリ開発」正誤表

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

Microsoft Word - NonGenTree.doc

Quick Sort 計算機アルゴリズム特論 :2017 年度 只木進一

ALG2012-F.ppt

Microsoft Word - NonGenList.doc

8 if switch for while do while 2

ユニット・テストの概要

問題1 以下に示すプログラムは、次の処理をするプログラムである

解きながら学ぶJava入門編


5 p Point int Java p Point Point p; p = new Point(); Point instance, p Point int 2 Point Point p = new Point(); p.x = 1; p.y = 2;

JAVA とテンプレート

Java から見たオブジェクト指向入門 オブジェクト指向 AtoZ セミナー ( 株 ) 豆蔵井上樹

Microsoft Word - keisankigairon.ch doc

I java A

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");

Java (7) Lesson = (1) 1 m 3 /s m 2 5 m 2 4 m 2 1 m 3 m 1 m 0.5 m 3 /ms 0.3 m 3 /ms 0.6 m 3 /ms 1 1 3

Java学習教材

: : : TSTank 2

Programming-C-3.key

問題1 以下に示すプログラムは、次の処理をするプログラムである

JavaプログラミングⅠ

Java Java Java Java Java 4 p * *** ***** *** * Unix p a,b,c,d 100,200,250,500 a*b = a*b+c = a*b+c*d = (a+b)*(c+d) = 225

JavaプログラミングⅠ

text_08.dvi

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

Microsoft PowerPoint - prog08.ppt

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

JAVA 11.4 PrintWriter 11.5

目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

(Eclipse\202\305\212w\202\324Java2\215\374.pdf)

I. (i) Java? (A). 2Apples (B). Vitamin-C (C). Peach21 (D). Pine_Apple (ii) Java? (A). Java (B). Java (C). Java (D). JavaScript Java JavaScript Java (i

PowerPoint Presentation

( ) p.1 x y y = ( x ) 1 γ γ = filtergamma.java import java.applet.*; public class filtergamma extends Applet{ Image img; Image new_img; publi


人工知能入門

Javaセキュアコーディングセミナー東京 第2回 数値データの取扱いと入力値の検証 演習解説

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

untitled

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

6 p.1 6 Java GUI GUI paintcomponent GUI mouseclicked, keypressed, actionperformed mouseclicked paintcomponent thread, 1 GUI 6.0.2, mutlithread C

tkk0408nari

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

Prog2_9th

新・明解Javaで学ぶアルゴリズムとデータ構造


Java updated

Thread


JavaプログラミングⅠ

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i

明解Javaによるアルゴリズムとデータ構造

Programming-C-9.key

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

JavaプログラミングⅠ

JAVA H13 OISA JAVA 1

Javaセキュアコーディングセミナー東京 第4回 メソッドとセキュリティ 演習解説

Vector Vector Vector Vector() Vector(int n) n Vector(int n,int delta) n delta

oop1

2 static final int DO NOTHING ON CLOSE static final int HIDE ON CLOSE static final int DISPOSE ON CLOSE static final int EXIT ON CLOSE void setvisible

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

Make the Future Java FY13 PPT Template

手書認識 グラフ描画 Step2-2 手書認識 : 認識結果を PaintPanel で描画する < 属性付き文字列 AttributedString> 標準出力では分かりにくいうえに認識結果を使えないので 認識するごとに PaintPanel に文字を描画することにする ここで 数式はただの文字列

データ構造とアルゴリズム論

2. データ構造ヒープに保存するデータは 番号付けられて保存される 従って リスト L として保存することとする 3. アルゴリズム 3.1. 要素の追加新しい要素の追加は リストの終端に置くことで開始する つまり 最下層の一番右 または新たに最下層を生成してその一番左となる この後 この要素を正し

** 平成 16 年度 FE 午後問題 Java** 示現塾プロジェクトマネージャ テクニカルエンジニア ( ネットワーク ) など各種セミナーを開催中!! 開催日 受講料 カリキュラム等 詳しくは 今すぐアクセス!! 平成 16

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

Oracle Forms Services R6i

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

新・明解Javaで学ぶアルゴリズムとデータ構造

1. はじめに 二分木ヒープ 様々なアルゴリズムにおいて ある要素の集合またはリストから 最小 な要素を取り 出す必要がある そのような場合に使われる標準的データ構造が二分木ヒープ (binary heap) である あるオブジェクトO を考える そのオブジェクトは ラベル O. label と値

VB.NETコーディング標準

3 p.1 3 Java Java Java try catch C Java if for while C 3.1 boolean Java if C if ( ) 1 if ( ) 1 else , 2 { } boolean true false 2 boolean Gr

(Java/FX ) Java CD Java version Java VC++ Python Ruby Java Java Eclipse Java Java 3 Java for Everyone 2 10 Java Midi Java JavaFX Shape Canvas C

Transcription:

2011 6 20 (sakai.keiichi@kochi-tech.ac.jp) http://www.info.kochi-tech.ac.jp/k1sakai/lecture/alg/2011/index.html tech.ac.jp/k1sakai/lecture/alg/2011/index.html html 1

O(1) O(1) 2

(123) () H(k) = k mod n (k:, n: ) 3

4

public class MyHashtable { public MyHashtable(int amaxsize) { this.table = new MyData[aMaxSize]; public MyData get(string akey) { return this.table[this.calculatehashcode(akey)]; public boolean put(mydata amydata) { this.table[this.calculatehashcode(amydata.getname())] = amydata; return true; public boolean remove(string akey) { this.table[this.calculatehashcode(akey)] = null; return true; private int calculatehashcode(string akey) { int intkey = 0; for(int count = 0; count < akey.length(); count++){ intkey += 0xFFFF & akey.charat(count); return intkey % this.table.length; private MyData[] table; 5

6

() 2.7.1 125 7

public class MyData { public MyData(String x) { name = x; private final String name; public String getname() { return name; public boolean equals(object x) { MyData y; try { y = (MyData) x; catch (ClassCastException e) { return false; return this.name.equals(y.getname()); public int hashcode() { int intkey = 0; for (byte e : name.getbytes()) { intkey += e; return intkey; public String tostring() { return name; hashcode() equals() Object 8

public class ChainHashtable<T> { public ChainHashtable(int max_size) { this.table = new List[max_size]; private List<T>[] table; private int hashcode(t data) { int hashcode = Math.abs(data.hashCode()); ()); return hashcode % this.table.length; public boolean put(t data) { int hashcode = hashcode(data); if (this.table[hashcode] == null) this.table[hashcode] = new LinkedList<T>(); this.table[hashcode].add(data); return true; public T get(t data) { List<T> list = this.table[hashcode(data)]; table[hashcode(data)]; if (null == list) return null; for (T e : list) if (e.equals(data)) return e; return null; public boolean remove(t data) { List<T> list = this.table[hashcode(data)]; if (null == list) return false; return list.remove(data); T T T 9

public String tostring() { StringBuffer sb = new StringBuffer(); int index = 0; for (List<T> list : this.table) t { sb.append('[').append(index++).append("]"); if (list!= null) for (T e : list) sb.append(" -> ").append(e.tostring()); ()) sb.append(' n'); return sb.tostring(); private final static String[] test_data = { " ", "", " ", " ", "", " ", " "; public static void main(string args[]) { System.out.println(""); t tl ") ChainHashtable<String> hashtable1 = new ChainHashtable<String>(3); for (String e : test_data) hashtable1.put(e); System.out.print(hashtable1.toString()); System.out.println(" "); t tl ") hashtable1.remove(" "); System.out.print(hashtable1.toString()); [0] -> [1] -> -> -> -> -> [2] -> [0] -> [1] -> -> -> -> [2] -> [0] -> -> [1] -> [2] -> -> -> -> [0] -> -> [1] -> [2] -> -> -> System.out.println(""); t tl ") ChainHashtable<MyData> hashtable2 = new ChainHashtable<MyData>(3); for (String e : test_data) hashtable2.put(new MyData(e)); System.out.print(hashtable2.toString()); System.out.println(" "); tp "); hashtable2.remove(new MyData(" ")); System.out.print(hashtable2.toString()); 10

2.7.4 131 134 11

134 12

public class OpenHashtable<T extends Object> { public OpenHashtable(int max_size) { this.table = new Object[max_size]; private Object[] table; private final static Object removed_data = new Object(); public boolean put(t data) { int hashcode = hashcode(data); for (int count = 0; count < this.table.length; count++) { if ((null == this.table[hashcode]) (removed_data == this.table[hashcode])) { this.table[hashcode] t sh = data; return true; hashcode = hashcode(data, hashcode); return false; 1 public T get(t data) { int hashcode = hashcode(data); for (int count = 0; count < this.table.length; count++) { if (null == this.table[hashcode]) return null; if (removed_data!= this.table[hashcode]) if (this.table[hashcode].equals(data)) return (T) this.table[hashcode]; hashcode = hashcode(data, hashcode); return null; remove, hashcode 13

public boolean remove(t data) { int hashcode = hashcode(data); for (int count = 0; count < this.table.length; count++) { if (null == this.table[hashcode]) t h { return false; if f( (removed _ data!= this.table[hashcode]) { if (this.table[hashcode].equals(data)) { this.table[hashcode] = removed_data; return true; hashcode = hashcode(data, hashcode); return false; private int hashcode(t data) { int hashcode = Math.abs(data.hashCode()); return hashcode % this.table.length; private int hashcode(t data, int hashcode) { int intkey = hashcode(data); return ((hashcode + 3 - (intkey % 3)) % this.table.length); 1 2 1 3 1 14

0: (0) 1: 2: (2) 3: (3) 4: 5: 6: (6) 7: (7) 8: (8) 9: (8) 10: 0: [removed] 1: 2: (2) 3: (3) 4: 5: 6: (6) 7: (7) ( ) 8: (8) 9: (8) 10: String MyData hashcode() 0: 1: (1) 2: (2) 3: (3) 4: 5: (5) ) 6: (5) 7: (7) 8: (8) 9: 10: 0: 1: (1) 2: (2) 3: [removed] 4: 5: (5) 6: (5) 7: (7) ( ) 8: (8) 9: 10: 15

+5 mod 10 16

! +5 mod 11 17

0: (0) 1: 2: (2) 3: (3) 4: 5: 6: (6) 7: (7) 8: (8) 9: (8) 10: String MyData 0: 1: (1) 2: (2) 3: (3) 4: 5: (5) 6: (5) 7: (7) 8: (8) 9: 10: String MyData g y 18