繰り返し処理と処理時間の見積もり
単純サーチの処理時間 ここで、プログラムの実行時間を細かく分析してみる。 // ((case-1)) // 単純サーチ O(N) #define SIZE 1024 int a[ SIZE ] ; // 配列 int s […]
情報構造論ガイダンス2023
基本的なガイダンス 情報構造論のシラバスを、ここに示す。プログラムを作成する上で、どのような考え方で作れば処理速度が速いのかを議論する。基本的に、4回のテストのたびに、レポート課題を実施する。各テスト毎の評価は、テスト素 […]
chatGPT、計算問題もこなすのかよ
今回、4EI 情報構造論の期末試験の1問目を chat GPT に解いてもらった。 福井高専の解説ではお得意の”知ったかぶり”を発揮しちゃったけど、処理時間のオーダー問題だと、具体的な数値を交えて […]
情報構造論-2022-講義録
情報構造論ガイダンス2022 繰り返し処理と処理時間の見積もり 再帰呼び出しの処理時間の見積もり 再帰呼び出しと再帰方程式 ポインタ処理 malloc()とfree() 様々なデータの覚え方のレポート課題 リスト構造の導 […]
関数ポインタ
関数ポインタとコールバック関数 JavaScript のプログラムで、以下のようなコーディングがよく使われる。このプログラムでは、3と4を加えた結果が出てくるが、関数の引数の中に関数宣言で使われるfunctionキーワー […]
動的メモリ管理 malloc() と free()
動的メモリ領域とフリーリスト 動的なメモリ領域(ヒープ領域)は、malloc()関数で処理用のメモリを借り、free()関数で使わなくなったメモリを返却する。 この返却されたメモリ領域は、改めて malloc() が呼び […]
ガベージコレクタとスタック領域
ガベージコレクタ 循環リストの発生するようなデータで、共有が発生するような場合には、どのようにデータを管理すれば良いだろうか? 最も簡単な方法は、処理が終わっても、使い終わったメモリを返却しない、方法である。ただし、この […]
共有のあるデータの取扱い
これまでの授業の中では、データを効率よく扱うためのデータ構造について議論をしてきた。これまでのプログラムの中では、データ構造のために動的メモリ(特にヒープメモリ)を多用してきた。ヒープメモリでは、malloc() 関数に […]
ハッシュ衝突対策と文字列のハッシュ関数
前回の授業で説明したハッシュ法は、データから簡単な計算(ハッシュ関数)で求まるハッシュ値をデータの記憶場所とする。しかし、異なるデータでも同じハッシュ値が求まった場合、どうすれば良いか? ハッシュ法を簡単なイメージで説明 […]
ハッシュ法(導入)
前半は中間試験の返却と解説を行う。後半は次のテーマのハッシュ法の導入話。 ここまでの授業では、配列(データ検索は、登録順保存ならO(N)、2分探索ならO(log N)となる、2分探索ができるのは配列がランダムアクセスがで […]