繰り返し処理と処理時間の見積もり
単純サーチの処理時間 ここで、プログラムの実行時間を細かく分析してみる。 // ((case-1)) // 単純サーチ O(N) #include <stdio.h> int main() { int a[ […]
情報構造論ガイダンス2025
基本的なガイダンス 情報構造論のシラバスを、ここに示す。プログラムを作成する上で、どのような考え方で作れば処理速度が速いのかを議論する。基本的に、4回のテストのたびに、レポート課題を実施する。各テスト毎の評価は、テスト素 […]
2024年度 情報構造論 講義録
繰り返し処理と処理時間の見積もり 値渡しと参照渡しとポインター ポインタと文字列処理 情報構造論のレポート課題 配列に要素を追加 Javaのオブジェクト指向入門 Javaでリスト構造 スタックと待ち行列 前期期末前の課題 […]
Javaでラムダ式の呼び出し
Javaでは、Stremクラスでよく使われる関数インタフェースは以下の通り。これらの関数インタフェースを経由してラムダ式を使う必要があるが、クラスの型推論があるため、Predicate などの関数インタフェース名や呼び出 […]
レポート課題(後期期末) ハッシュ法
課題内容 以下の内容の中から1つを選びハッシュ法でデータを登録・検索するプログラムを作成せよ。 名前と電話番号 – 名前で検索、電話番号で検索などができること。 名前とメールアドレス – メールア […]
関数ポインタとラムダ式
関数ポインタとコールバック関数 JavaScript のプログラムで、以下のようなコーディングがよく使われる。このプログラムでは、3と4を加えた結果が出てくるが、関数の引数の中に関数宣言で使われるfunctionキーワー […]
ガベージコレクタとヒープ管理
前回の授業では、共有のあるデータ構造では、データの解放などで問題が発生することを示し、その解決法として参照カウンタ法などを紹介した。今日は、参照カウンタ法の問題を示した上で、ガベージコレクタなどの説明を行う。 共有のある […]
トランザクション処理
トランザクション処理 トランザクション処理とは、相互に依存関係にある複数の処理を矛盾なく処理することであり、データベースでは、ACID特性(原子性,一貫性,隔離性,耐久性)がもとめられる。この時、直列化可能(様々な順序で […]
メモリ管理・スタック領域とヒープ領域
ここまでの授業では、プログラムを動かすうえでアルゴリズムとデータ構造を中心に話をしてきた。しかしプログラムの中で利用しているデータがどういったメモリで管理されているのかを正しく理解する必要がある。そこで、局所変数のような […]
ハッシュ法
ここまでの授業では、配列(データ検索は、登録順保存ならO(N)、2分探索ならO(log N)となる、2分探索ができるのは配列がランダムアクセスができるからこそ)、単純リスト(データ検索(シーケンシャルアクセスしかできない […]