Posted at 2007.10.10,Wed
レジュメをまとめました。
ええと、前回のレジュメから丁度一ヶ月。
長かった分、かなりの量になってしまいました。
理解した単語から消していくのがミソです。
記憶する必要の無い単語は、ぼんやりと目になじませて、拒否反応が出ないようしておきましょう。
ええと、前回のレジュメから丁度一ヶ月。
長かった分、かなりの量になってしまいました。
理解した単語から消していくのがミソです。
補数 | 1の補数はビット反転。2の補数は1の補数+1。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
バブルソート | O(n^2)・O(n^2) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
選択ソート | O(n^2)・O(n^2) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
挿入ソート | O(n)・O(n^2) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
クイックソート | O(nlogn)・O(n^2) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
マージソート | O(nlogn)・O(nlogn) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ヒープソート | O(nlogn)・O(nlogn) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
パイプライン制御 |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MIPS | Million Instructions Per Second | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
メモリインタリーブ | メモリを分割し連続アドレスへのアクセスを高速化 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DMA | CPUと独立して、メモリとIO間でデータ通信を行う事 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FIFO | First In First Out | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LIFO | Last In First Out | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LRU | Least Recently Used | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LFU | Least Frequency Used | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
スラッシング | スワップが頻繁におこる事 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ラウンドロビン | 優先度を設定せずに、順番に廻す | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SJF | Shortest Job Firs ( 処理時間の長さに従う ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
垂直分散 | 階層的に処理を分散。3層クラサバとか。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
水平分散 | 分散したサーバが対等の位置に。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NAS | Network Attached Storage | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SAN | Storage Area Network | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EAI | 企業内のシステムを連携して再構築 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UDDI | Webサービス用検索エンジン | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ドライバ | 呼び出し元のダミー | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
スタブ | 呼び出す先のダミー | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
インバスケット | 作業(書類)を山積みにするトレーニング | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
サービスサポート | ITIL での日常的な指針 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
サービスデリバリ | ITIL での中・長期的な指針 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RARP | MACアドレス→IPアドレス | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
パリティ | 加算で1ビット検出。訂正は無理 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CRC | 複雑な数式で1ビット検出。訂正は無理 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ハミング符号 | XORで2ビット検出。1ビット訂正 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
標本化定理 | 復元できる周波数は半分 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATM | 固定長、非同期転送 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
パケット交換方式 | 可変長、蓄積するため遅延が大きい | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ロールバック | データを再現、論理障害での使用が多い | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ロールフォワード | データと処理を再現、物理障害での使用が多い | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ストアドプロシージャ | SQL文が実行形式で保存されたライブラリ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Webビーコン | 情報収集用の画像 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SECE | Web上のクレカ決済の仕様 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
インターロック | 操作ミスを防ぐ仕組み | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
インボリューション | 暗号化用のテクニック | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
耐タンパ性 | 物理的な解析の困難性 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
共通フレーム | SLCP-JCF98・作業の内容と項目を分類したもの | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
JIS X 0160 | ISO/IEC 12207 プロセス・アクティビティ・タスク | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CORBA | 分散オブジェクト技術 OMG・ORB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
浮動小数 | (-1)S × 2E-127 × (1 + F) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
逆ポーランド記法 | X=(A−B)×C を XAB−C×= と表現する | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SRAM | 大きい・高い・速い・バイポーラ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DRAM | 小さい・安い・遅い・CMOS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CISC | 1命令が複雑、マイクロプログラム | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RISC | 命令1クロック、ワイヤードロジック | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MIPS | Million Instructions Per Second | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FLOPS | Floating point Operations Per Second | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ライトスルー | (キャッシュメモリ) 書いたら終わり | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ライトバック | (キャッシュメモリ) 書いた後、更に書き戻しが必要 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
フルアソシアティブ | 任意の場所に格納 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ダイレクトマッピング | 固定位置に格納 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
セットアソシアティブ | 固定ブロックの任意の場所に格納 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
タスク:待ち状態 | 自発的な待ち状態 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
セマフォ | P→V の順で処理 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
フールプルーフ | Foolproof ( 馬鹿よけ ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
フェールセーフ | Fail Safe | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
フェールソフト | Fail Soft | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
フォールトアボイダンス | Fault Avoidance ( 回避 ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
フォールトトレランス | Fault Tolerance ( 許容 ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dhrystone・SPECint | 整数のベンチマーク | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Wheatstone・SPECfp | 浮動小数のベンチマーク | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
平均待ち時間 | (ρ ÷ (1 − ρ)) × 処理時間 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MTBF | 平均故障間隔 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MTTR | 平均修理時間 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
故障率 | 1 ÷ MTBF | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
稼働率 | MTBF ÷ ( MTBF + MTTR ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ファンクションポイント | 機能の複雑さから見積もる ( ×+× ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
COCOMO | コード行数から工数を見積もる | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CASEツール | 開発で使用する色々なツール | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
リポジトリ | 成果物の格納庫。用語統一が可能。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ウォーターフォール | 普通の開発 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
プロトタイプ | 初期段階でプロトタイプを作る | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
スパイラル | 全行程をグルグル廻し続ける | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
成長モデル | 核となる部分を作り、少しずつ膨らませる | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RAD | 短期集中、少人数精鋭 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ラウンドトリップ | トライ&エラー | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
同値分割 | 代表値を使用する | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
限界値分析 | 境界値を使用する | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
原因結果グラフ | 複雑な要因に対する結果のグラフ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
デシジョンテーブル | 複雑な要因に対する結果の表 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
バグ埋込法 | 総バグ:発見済バグ=埋込バグ:発見済埋込バグ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ウォークスルー | 主催者は開発者。非公式な感じ。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
インスペクション | 主催者は管理者。公式な感じ。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PERT・WBS | 図参照 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
コネクション型通信 | 相手を確認して通信。TCP。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
コネクションレス型通信 | 相手を無視して通信。UDP。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CSMA/CD | 衝突検知後再送、長距離は無理 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ANSI/SPARC 3層スキーマ | 内部・概念・外部 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
E-R図 | DBの設計図 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
候補キー | 主キー+代替キー | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
外部キー | 外部の主キーを参照 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DBの第1正規化 | 配列・繰り返しを無くすこと | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DBの第2正規化 | 単独キーと複合キーの表に分ける | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DBの第3正規化 | キー以外の部分で、テーブルになる部分を抜き出す | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DBの第4正規化 | キーに対し、関連性の薄い値を分割 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ACID - A | Atomicity / All or Nothing | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ACID - C | Consistency / データの矛盾が発生しないこと | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ACID - I | Isolation / 同時に実行しても順番に実行しても同じ結果 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ACID - D | Durability / 成功した結果は消失しない | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
レプリケーション | 複製を用意 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2相コミット | 要求・コミット or ロールバックの2相 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SAML | シングルサインオンで使用する認証方式 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IDS | Intrusion Detection System |
記憶する必要の無い単語
マルコフ・オートマトンBNF・スーパーコンピュータ・ジョブ・ジョブステップ・フラッディング・M/M/1待ち行列・OSS・OSI・OSD・デマルコ・構造化技法・DFD・JIS X 0129-1 ( ISO/IEC 9126 )JIS Q 17001:2006 ( ISO/IEC 27001:2005 ) ・無向グラフ・有向グラフ・B木・SISD・SIMD・MISD・MIMD・ホットスタンバイ・ウォームスタンバイ・コールドスタンバイ・コンカレント・コデザイン・コベリフィケーション・VLAN ( ポートVLAN・タグVLAN )・オブジェクト型データベース ( ODBMS・OODBMS )・データマイニング・ISO/IEC 15408・ISO/IEC 17799・ISMS
マルコフ・オートマトンBNF・スーパーコンピュータ・ジョブ・ジョブステップ・フラッディング・M/M/1待ち行列・OSS・OSI・OSD・デマルコ・構造化技法・DFD・JIS X 0129-1 ( ISO/IEC 9126 )JIS Q 17001:2006 ( ISO/IEC 27001:2005 ) ・無向グラフ・有向グラフ・B木・SISD・SIMD・MISD・MIMD・ホットスタンバイ・ウォームスタンバイ・コールドスタンバイ・コンカレント・コデザイン・コベリフィケーション・VLAN ( ポートVLAN・タグVLAN )・オブジェクト型データベース ( ODBMS・OODBMS )・データマイニング・ISO/IEC 15408・ISO/IEC 17799・ISMS
記憶する必要の無い単語は、ぼんやりと目になじませて、拒否反応が出ないようしておきましょう。
PR
Posted at 2007.10.09,Tue
ええと、ヒープソートです。
実は、一度書いたのですが、ヒープソートのメリットが全然活かせてなかったのでボツにしました。
ちょっと勘違い。
ヒープの構築(2分木の作成)と要素の取り出しを繰り返せばヒープソートだと思ってたのですが、毎回 木全体を作り直してしまうと遅いですよね。
というわけで、やり直しです。
最大値となる根を抜き出した後は、ヒープの末端の葉を正しい位置に入れてあげればOKってことですね。ヒープを全て作り直すのとは、速度は大きく違いますね。
ソートを試してみる
実は、一度書いたのですが、ヒープソートのメリットが全然活かせてなかったのでボツにしました。
ちょっと勘違い。
ヒープの構築(2分木の作成)と要素の取り出しを繰り返せばヒープソートだと思ってたのですが、毎回 木全体を作り直してしまうと遅いですよね。
というわけで、やり直しです。
001: var count = 10;
002: var nums = new Array(count);
003:
004: // 適当な数値で初期化 ( 重複OK )
005: if (var c = 0; c < count; c++) {
006: nums[c] = Math.floor((Math.random() * 100) % 100);
007: }
008:
009: // ヒープ構造の初期化
010: for (var c = Math.floor(count / 2); c >= 0; c--) {
011: heap(c, count);
012: }
013:
014: // 入れ替え&ソート
015: for (var c = count - 1; c >= 0; c--) {
016: var x = nums[c];
017: nums[c] = nums[0];
018: nums[0] = x;
019: heap(0, c);
020: }
021:
022: // 特定のノード以下の木構造を再構築
023: function heap(node, cnt) {
024: var p = (node + 1) * 2 - 1;
025: if (p > cnt) return;
026:
027: if((nums[node] < nums[p]) &&
028: ((p == (cnt - 1)) || (nums[p] > nums[p + 1]))) {
029: // 左側の葉と入れ替え
030: var x = nums[p];
031: nums[p] = nums[node];
032: nums[node] = x;
033: heap(p);
034: }
035: else if (((p + 1) < cnt) && (nums[node] < nums[p + 1])) {
036: // 右側の葉と入れ替え
037: var x = nums[p + 1];
038: nums[p + 1] = nums[node];
039: nums[node] = x;
040: heap(p + 1);
041: }
042: }
最大値となる根を抜き出した後は、ヒープの末端の葉を正しい位置に入れてあげればOKってことですね。ヒープを全て作り直すのとは、速度は大きく違いますね。
0
1
2
3
4
5
0
1
2
3
4
5
ソートを試してみる
Posted at 2007.10.05,Fri
今回は、クイックソートです。
よく利用しますが、あまり組むことは少ないですよね。
ソートを試してみる
よく利用しますが、あまり組むことは少ないですよね。
001: var count = 10;
002: var nums = new Array(count);
003:
004: // 適当な数値で初期化 ( 重複OK )
005: if (var c = 0; c < count; c++) {
006: nums[c] = Math.floor((Math.random() * 100) % 100);
007: }
008: qsort(0, count - 1);
009:
010: function qsort(r1, r2)
011: {
012: // 終了条件:ソート対象の要素が1つ
013: if (r1 >= r2) return;
014:
015: // 軸を適当に選ぶ(ここでは先頭)
016: var pivot = nums[r1];
017: var pos = r1;
018:
019: for (var c = r1 + 1; c <= r2; c++) {
020: // 軸を基準に分割しながら、軸が有るべき位置を見つける
021: if (nums[c] < pivot) {
022: pos++;
023: var x = nums[c];
024: nums[c] = nums[pos];
025: nums[pos] = x;
026: }
027: }
028:
029: var x = nums[r1];
030: nums[r1] = nums[pos];
031: nums[pos] = x;
032:
033: qsort(r1, pos - 1);
034: qsort(pos + 1, r2);
035: }
0
1
2
3
4
5
ソートを試してみる
Posted at 2007.10.05,Fri
さてさて、挿入ソートです。
言語的に 挿入 というイメージがつかみにくいかもしれません。
もし、JavaScript の Array クラスがもう少し高機能であれば、もう少し違った書き方が出来ると思いますが、C言語でも同じ感じなので仕方ないですね。
ソートを試してみる
001: var count = 10;
002: var nums = new Array(count);
003:
004: // 適当な数値で初期化 ( 重複OK )
005: if (var c = 0; c < count; c++) {
006: nums[c] = Math.floor((Math.random() * 100) % 100);
007: }
008:
009: for (var c = 0; c < count; c++) {
010: for (var n = 0; n < c; n++) {
011: if (nums[c] < nums[n]) {
012: // 挿入する。
013: var x = nums[c];
014: nums[c] = nums[n];
015: nums[n] = x;
016: }
017: }
018: }
言語的に 挿入 というイメージがつかみにくいかもしれません。
もし、JavaScript の Array クラスがもう少し高機能であれば、もう少し違った書き方が出来ると思いますが、C言語でも同じ感じなので仕方ないですね。
0
1
2
3
4
5
ソートを試してみる
Posted at 2007.10.05,Fri
さてさて、選択ソートです。
最小値を選択ってところがミソですね。
しかし、Cをはじめとして、新しい言語にも swap が存在しないのはなんで?
ソートを試してみる
001: var count = 10;
002: var nums = new Array(count);
003:
004: // 適当な数値で初期化 ( 重複OK )
005: if (var c = 0; c < count; c++) {
006: nums[c] = Math.floor((Math.random() * 100) % 100);
007: }
008:
009: for (var c = 0; c < count; c++) {
010: // 最小値を選択する
011: var min = c;
012: for (var n = c + 1; n < count; n++) {
013: if (nums[min] > nums[n]) {
014: min = n;
015: }
016: }
017: var x = nums[c];
018: nums[c] = nums[min];
019: nums[min] = x;
020: }
最小値を選択ってところがミソですね。
しかし、Cをはじめとして、新しい言語にも swap が存在しないのはなんで?
0
1
2
3
4
5
ソートを試してみる