リスト構造と処理
データ処理において、配列は基本的データ構造だが、動的メモリ確保の説明で述べたように、基本の配列では大きさを変更することができない。これ以外にも、配列は途中にデータを挿入・削除を行う場合、の処理時間を伴う。以下にその問題点 […]
C言語での入出力処理のおさらい
テストのプログラム作成の問題で、入力処理の書き方が適切でないものが多いので、基本とテクニックの解説。 scanf()の使い方 // scanf( "フォーマット" , 引数... ) ; // データの型とフォーマット […]
様々な2次元配列
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int i3x4[ 3 ][ 4 ] = […]
様々なデータの覚え方のレポート課題
前回の malloc() + free() の資料で、補足で説明したC++のnew, delete を含め、様々なデータ構造の覚え方の例やメモリイメージを説明し、前期中間のレポート課題を示す。 malloc+freeの振 […]
malloc()とfree()
前回の授業で説明した、alloca() は、スタック領域にデーターを覚えるので、allocaを実行した関数の終了ともに配列領域が消えてしまう。しかし、関数が終わってもそのデータを使いたいといった場合には、malloc() […]
ポインタとメモリの使用効率
ポインタの加算と配列アドレス ポインタに整数値を加えることは、アクセスする場所が、指定された分だけ後ろにずれることを意味する。 // ポインタ加算の例 int a[ 5 ] = { 11 , 22 , 33 , 44 , […]
再帰処理時間の見積もりとポインタ操作
前回の授業では、再帰処理やソートアルゴリズムの処理時間の見積もりについて説明を行った。 ソート処理の見積もり この際の練習問題の1つめは、「再帰方程式の理解度確認の回答」にて解説を示す。 最後の練習問題はここで説明を行う […]
再帰呼び出しと再帰方程式
前回までの授業では、for ループの処理時間の分析や見積もりについて説明をしてきた。 次のテーマとして、再帰呼び出しを含む処理の処理時間の分析について説明する。 再帰関数と再帰方程式 再帰関数は、自分自身の処理の中に「問 […]
繰り返し処理と処理時間の見積もり
単純サーチの処理時間 ここで、プログラムの実行時間を細かく分析してみる。 // ((case-1)) // 単純サーチ O(N) #define SIZE 1024 int a[ SIZE ] ; // 配列 int s […]
情報構造論2021ガイダンス
基本的なガイダンス 情報構造論のシラバスを、ここに示す。プログラムを作成する上で、どのような考え方で作れば処理速度が速いのかを議論する。基本的に、4回のテストのたびに、レポート課題を実施する。各テスト毎の評価は、テスト素 […]