• 締切済み

線形と二分探索により探索を行うプログラムについて教えてください

20個の配列にデータを入れ(プログラム内で初期化と代入を行って良い)入力した数を探索するプログラムをCmachineで作成したいのですが、線形探索により探索を行うプログラムと二分探索により探索を行うプログラムの作り方を教えていただけないでしょうか?

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.5

C の規格では bsearch はあっても lsearch はありませんし, ヘッダも search.h ではなく stdlib.h です. 念のため.

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.4

> 「Cmachine」(C言語学習用ソフト)で作成したいみたいなので、標準ライブラリは使えないかもしれません。 といわれて、ctmk110.lzhで確認したところ、確かに、search.hとかありませんでした。以降のバージョンではあるのかもしれませんが。 ですので、glibcのソースを紹介。LGPLに則って利用してください。 これが、Cmachineで動くかは確認してません。

参考URL:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/stdlib/bsearch.c?rev=1.7&cvsroot=glibc
  • edomin
  • ベストアンサー率32% (327/1003)
回答No.3

#2の方へ 「Cmachine」(C言語学習用ソフト)で作成したいみたいなので、標準ライブラリは使えないかもしれません。 ダウンロードしてみたけど、結構おもしろいソフトでした。(遊ぶには・・・) なお、コンパイルも出来ませんので実装するのではなく、あくまでも「学習用」でした。 コンパイラ+リンカと書いてありましたが、使う方からするとクローズドなインタプリンタみたいな物です。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

Cの標準ライブラリに、既にlsearchおよびbsearchがあります。 こちらを使えば、わざわざ自分で実装する必要はないと思います。

参考URL:
http://docs.hp.com/ja/B2355-60104-06/bsearch.3C.html,http://www.linux.or.jp/JM/html/LDP_man-pages/man3/lsearch.3.html
  • edomin
  • ベストアンサー率32% (327/1003)
回答No.1

全部教えるのは難しいでしょう。 線形探索や2分探索のプログラムを実際に作ってみて実行させてみたけど、「エラーがでた」や「結果が思ったのと違う」ので、どこがおかしいのだろう? と言う質問の方が回答がつきやすいですよ。 アルゴリズムの本を参考にして、とりあえず作ってみましょう。

関連するQ&A

専門家に質問してみよう