2005-05-01から1ヶ月間の記事一覧
「ソート法 4」 シェルソートは、挿入整列法の 1つの バリエーションです。 挿入整列法であることを示す 理由の 1つに、要素は その右側の 要素としか 互いに 交換できない、ということがあり、配列を 通して、一度に 1ヶ所に 動けるだけです。 それで、時間…
「ソート法 3」 void insertion_sort (int *list, int left, int right) { int step, i; /* int temp; /* /* * 左から 右へ 移動して、step と right の * 間の 値 - values - を ソートする */ for (step = left; step /* h番目の 要素、list[step] を 選択…
「ソート法 2」 挿入整列法は とても簡単で、新しい要素 - new item - を 挿入するため、はじめに 要素を 右側に 移動させることによって、それぞれの 新しい要素を その位置 - position - に ソートできるように スペースを つくるのです。 例えば、次のよ…
「ソート法」 ソートは 基本 - basic - ですし、また C と C++ の プログラムでは、一般的な 操作方法です。なので、この 両者についての 基礎 - basics - は もちろん、どのソート法を 用いるのかについても、よく 精通するように してください。 一般的な …
ネット上で アルゴリズム関連の page を 捜してみる。 * Program Development by Stepwise Refinement (1971) Niklaus Wirth (N. Wirth とは 「アルゴリズム+データ構造=プログラム」を 書いた ヴィルト先生の ことです)
あいかわらず tutorial の 訳に 苦しんでます (自業自得だけど)。 insert sort って どう訳すのか わからなかったし、なにか 参考になる本は ないか、本屋に 寄ってみた。 プログラミングに活かすデータ構造とアルゴリズムの基礎知識 (UNIX MAGAZINE LIBRARY…
「対話型入力 5」 これまで 見てきたように、ユーザからの 対話型入力を 安全に 扱うのは、最初 思っていたより ずっと 複雑ですし、それを 正確に 取り込むことが、また 信じられないくらい 困難なのです。 入力処理についても、その適用の しかたが 違えば…
「対話型入力 4」 #define INVAL -1 int var; char buf[20]; if (fgets(buf, 20, stdin) != NULL) var = (int)strtol(buf, NULL, 10); else { fputs("Error, no input read\n", stderr); var = INVAL; } /* ここでは (var は) strtol の 返り値を * (int に …
「対話型入力 3」 ここで、わずかですが scanf の たぐいを 回避できる 選択肢が あります。 その中には かなり 複雑な ものもあり、使う前には、ユーザ入力が 正確であることを 十分 確かめないと いけません。 でないと、あなたにとって なにか よくないこ…
「対話型入力 2」 これは 動いてくれます。 ただし、ユーザが おかしな整数値を入力しなければ、ですが。 scanf の 呼び出し - call - を 改良する 1つの 手段として、返り値のチェックが あります。 scanf は 値によって 数値を 返します。 呼び出しが 成功…
「対話型入力」 対話式入力、つまり データを 直接 ユーザが 入力することで 知られている方法は、落ちかけてる橋を 歩いて 渡るようなものです。 というのも、ユーザというのは けっこう いきあたり ばったりなので、連中が しでかすであろう 考えられる限…
「構造体について 3」 構造体は、そのなかに 同じ型の構造体の ポインタを 含むことができ、自己参照構造体と 呼ばれています。 struct Node { void *data; struct Node *next; }; これが、連結リストに 含まれた 単体の項目 - simple item - に 使われて、…
「構造体について 2」 ポインタを 構造体に渡す、という参照方法は 多くの場面で 採り入れられています。 それは、大きすぎる 構造体の占めるスペースを 節約してくれますし、ときには、その実行速度を 上げることにもなります。 実際、多くの データ構造ラ…
しばらく C++ World の tutorial を 少しずつ 訳してみる。 「構造体について」 構造体は、互いに 関連している 異なった型の値を まとめて 扱うことのできる、都合のよい やり方 - convenient way - です。 struct Person { char *name; int age; float hei…
昨日の イラクでの 事件について、 新イラク取材日記 Peace On Iraq (忘れないうちに メモ)
ひさしぶりに 「アルゴリズムとプログラミング技法」(isbn:478190923X) を ひっぱりだして メモ。 この本は 言語が PASCAL なので、C に 書き直す必要がある。しかし、これが むずかしい プログラミング言語の [用語解説](p7-8) が、とても よく できている…
データ構造が なかなか 理解できないので 発想を 変えてみる。 1. まず 元になる data file だけど、べつに 最初から 整理されてるわけではない 2. 入力するのは 多くの場合、人間なんだから まちがって 当然である。 3. 個々のデータの まとまりを 行単位 -…
google で Ronda Hauben を 検索すると、Netizens に 関連して、公文俊平の名が 度々 でてくる。 この人物には 3つの顔が あるように 思う。 かつて 現代思潮社が ローザ・ルクセンブルグや トロツキーの著作を だしていた頃、一冊の レーニンの本が、対馬忠…
現在は 更新されてないが USENET に Internet FAQ Archives という page が ある。 http://www.faqs.org/faqs ここでは - 今では 使う人も 少ないだろうけど - mail という ユーティリティ(コマンド) で 実際に 交信が できます。ということは ftp や telnet…
Network Archives に Ronda Hauben の page を 追加。 ひさしぶりに web で 調べものを したので ちょっと 疲れた。 気分を 変えようと 『インターネット宣言』(isbn:406207480X) を 読んでみると、少し ひっかかる ところが ある。 実は (アメリカの ベル研…