• ベストアンサー

C言語のライブラリ

こんにちは。 フリーのC言語のライブラリを紹介してください。 ファイル同士のマッチングやら、あるレコードの検索などC言語で 開発することになりました。 大量のデータで行なうため、なるたけ早いロジックを組まないといけません。 検索方法については、よく情報処理試験等で出てくる2分探索とか ハッシュ法などを使用したいと思うのですが。 いちから作成するのは大変なので、市販で出回っているライブラリなど ありましたらご紹介していただけないでしょうか? できたら、フリーソフトがいいのですが(安価であれば購入も考えています)、どなかたか知り得ているかたよろしくお願いします。 環境はUNIXなのですが、Windows版でもかまいません。

質問者が選んだベストアンサー

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.3

UNIXってことはGCCですか? ハッシュ検索も2分探索もGCCのライブラリに標準で含まれます。 2分検索;bsearch ハッシュ:hsearsh,hcreate,hdestroy 使い方はmanで調べてください。

hanikos2001
質問者

お礼

ライブラリにあるなんて知りませんでした。 どうもありがとうございます。 専門的な方だと思われますので、もうひとつお願いします。m(__)m テーブルサイズを小さくすると、既存のレコードが上書き(なくなる)のような 動きを見せます。テーブルを大きくすればいいんでしょうが、若干ハッシュテーブルの仕様がわからないのが心配です。 そのあたりの仕様がmanでみると hsearch() is a hash-table search routine generalized from Knuth (6.4) Algorithm D. とあります。 Knuth (6.4) Algorithm D.ってどこに出てるかご存知ですか?

その他の回答 (2)

noname#2009
noname#2009
回答No.2

前記回答がリンクされ損ねていたので 下のURLから 左上の [解説(良本紹介など)]→”アルゴリズムとデータ構造” で、また左上の [アルゴリズムとデータ構造書籍一覧  目次へ] から

参考URL:
http://www.yfcbookshelf.com/
noname#2009
noname#2009
回答No.1

本屋の本を1冊持っとくと便利じゃないかと。 「C言語による最新アルゴリズム事典」   技術評論社 奥村 晴彦 著 「C言語で書くアルゴリズム」   ソフトバンクパブリッシング   Andrew Binstock/John Rex 著   岩谷 宏 訳 とか、いろいろあるみたいです。 詳しくは参考URLを。 WEB上で直接ソースを探すなら、 [YAHOO>コンピュータとインターネット > ソフト ウェア > プログラミングツール > プログラミング言 語 > CとC++] 下で 「The Collection Of Algorithms」 や 「C言語によるアルゴリズム(コメント付き)」(この まんまのキーワードでYAHOO検索) なんてのもありました (誰かの保管サイトらしいので、ほどほどのところに。  txtがもし見れなければ保存してからブラウザに放り  込めばOK) など『2分探索 C』あたりで検索かけたりすると いくつかあるみたいです。 フリーウェア...ではあるかどうか知りませんが、 サンプルを探して使う程度で良いんじゃないでしょうか。

参考URL:
http://www.yfcbookshelf.com/algorithms%20mokuji.htm
hanikos2001
質問者

お礼

どうもありがとうございました

関連するQ&A

  • C言語についてどうしてもわからない疑問

    プログラミング初心者です。 C言語を勉強中に疑問に思ったことが2つあります。 まず1つ目。 C言語以外のプログラミング言語、例えばjavaとかC#とかjsとかpythonとかrubyとかPHPとか、には開発者にとって便利なライブラリとかフレームワーク(僕にはこの2つの明確な違いがわかりません。が、どちらも「開発者が定義しなくてもよい関数やオブジェクトの集合」という認識があります)がありますよね。 そのおかげで色んな人達がプログラミングし易くなりました。 ネット(はてぶのホットエントリとか)でも「馬鹿な俺がプログラミングを勉強して〇〇を作った」といった記事をよく目にします。 でも「C言語を使って」というのは聞いたことがありません。 そもそも、C言語はそいういったライブラリやフレームワークが少ないように感じます。 検索してもrailsとかjqueryのようなフレームワーク(ライブラリ?)は見つかりません。 これが無かったらプログラムなんて作れないのでは? しかし、世間にはC言語で作られたプログラムが多いのもまた事実。 C言語ではいったいどのように開発が行われているのか教えてください。 2つ目 unixとかlinuxといったOSはC言語で書かれている聞いたことがあります。 しかし、プログラムの開発は「コードを書く→コンパイル(→デバッグ)→実行」という流れですよね。 ではOSを開発するときに、そのコードをどうやってコンパイルするのでしょうか? コンパイラはOSの上に立っているとするなら、OSがない状態でコンパイラはどこに立てばいいのか。 そこがわかりません。 誰かこの2つの疑問に答えてください。 お願いします。

  • gdbmみたいな簡易データベースライブラリ

    Unix系OSでC言語で、あるサービスのデーモンプロセスを開発しているのですが・・ 簡易データベース(キー1個に対して値1個が検索できるような)のライブラリで、且つ、mallocを内部で使わないタイプのライブラリ、ないでしょうか? 普通はgdbmなどを使うところなのですが、gdbmは内部でmallocを呼び出しているので、デーモンプロセスで継続的に使うには向かないかも?と思いまして・・ それとも、mallocやfreeを何度も呼び出すことによるガーベージコレクションの問題は、あまり気にしなくてよい、のでしょうか?

  • ライブラリ作成時のグローバル変数の対応(C言語)

    C言語を用いてライブラリを作成しています。 ライブラリは機能ごとにファイルを分けています。 今、ライブラリの中でのみ使用するグローバル変数やグローバル関数が必要になりました。 このグローバル変数や関数は複数ファイルで参照するため、static宣言はできません。 しかし、このグローバル変数や関数は公開する必要はありません(ライブラリの中でのみ使用します)。 このようなことをC言語で実現するためにはどうしたらよいのでしょうか? 開発環境は Windows7 VisualC++2010 です。 VisualC++2010を使うなら C++で書けばいいのではないかといわれそうですが、 C言語でプログラミングしたいのです。 以下のようなサイトがあったのですが、これを使うしかないでしょうか? http://0xcc.net/blog/archives/000108.html

  • UNIX CプログラマがC++を学ぶには

    僕は今までUNIX上でC言語を使用し開発をしてきました。 しかし、次の仕事からマイクロソフトのVisualStudioのC++で開発するようになったのですが、 全くクラスの考えかたとか、C++の関数がわかりません。 自分のような今までUNIX Cを使用していた人間が、C++を学ぶに最適な 本があったらご紹介ください。

  • C言語で何か作ってみようと思います

    こんばんは。 現在C言語を学んでおり、折角学んでいるのだから何か作ってみようと思っているものです。 そこでご質問があるのですが、C言語で何か(ゲーム、フリーソフト、メカ制御等)作っている過程を紹介しているサイト、書籍等を教えて頂けませんでしょうか? テトリスは作ったことがあります。 フリーソフトは作ったことがないので、作り方を紹介しているものがあれば作成したいと考えております。 メカ制御は、ロボット等のメカの簡単な動きをプログラムで制御してみたいなと思い、加えてみました。 その他、皆様がC言語で何かを作ってみた時に利用したものを教えて頂ければ幸いです。 以上、よろしくお願い致します。

  • 業務でC言語の開発環境は?

    VCではなく、 Unixで動くC言語の開発環境は 業務の場合、どういったものを使っていますか? Eclipse + CDT ですか?

  • C言語エグゼキュータ、マクロエグゼキュータ

    森精機のマシン制御の開発として C言語エグゼキュータ、マクロエグゼキュータというものがありコーディングするようですが、これらの言語仕様やサンプルプログラムなどはどういった方法で入手できるのでしょうか? 市販の書籍でも、サイトでもいいですので教えてもらえないでしょうか? 気になる点としては 1.C言語エグゼキュータはWindows系のC言語(C,C++,C#)しか知らない人間でも理解可能なのでしょうか? 2.画面作成のイメージは、Windowsライクなのでしょうか?それともまったく異なるのでしょうか? 3.実際のハード制御は、ダイレクトにポートアクセスするのでしょうか?それともライブラリのようなものが用意されているのでしょうか? 4.C言語エグゼキュータ、マクロエグゼキュータの関係はどうなっているのでしょうか?相互に呼び出せるのでしょうか?それともそれぞれ独立しているのでしょうか? 初心者の質問ですみませんがよろしくお願いします。

  • linux-C言語(gcc)でPostgresql

    をフリーで使うため それを可能にするライブラリをDL&Installしたいのですが linuxC言語(gcc)でPostgresqlを使用できるライブラリを教えてください 高速化のためできればCでやりたいのですが なければC++でもいいですから 教えてください よろしくお願いします

  • C言語の開発環境

    C言語のクオリティの高いフリーの開発環境を探しています。 Javaの開発環境として、Eclipseが良かったので、C言語も Eclipseでやってみたものの、Javaに比べて、自動的に文法 チェックや関数の補完、コンパイルへのショートカットがない、 コンパイルがかなり面倒と結構つかいにくく、他にいいのが ないか探しています。 C言語のオススメの開発環境、教えてください。

  • C++とDirectXでゲームのライブラリを作りたい

    こんにちは、私は現在C++とDirectXを使ってゲームを作っています。 この夏に稚拙ながらライブラリをいくつか組んでみたのですがいかんせん経験不足と知識不足からなかなか納得のいくものができません。 インターネットなどでもDirectXの活用方法やC++の文法、デザインパターンなどのHPはよく見つけるのですがライブラリの組み方を説明しているページというのは見たことありません。 フリーのライブラリもいくつか見ましたがどれもレベルが高すぎてあまり参考にならず・・・ ライブラリの作り方を紹介しているHPや参考書などがあれば紹介していただきたいです。

専門家に質問してみよう