Linux c言語 gcc
c言語初心者です。
ハッシュ法の開放番地法を用いてハッシュ表を作るプログラムを作っています。
なんとかエラーをなくし、プログラムも動くようになったのですが、異常に実行速度が遅いです。
どこが原因なのか、また改善方法を教えてください。
プログラムが長いので、お手数ですが以下のファイルを参照してください。
よろしくお願いします。
Hash_main.c : http://www.dotup.org/uploda/www.dotup.org2158246.c.html
utilities.c : http://www.dotup.org/uploda/www.dotup.org2158241.c.html
hash_open.h : http://www.dotup.org/uploda/www.dotup.o ... 2.txt.html
Hash_open.c : http://www.dotup.org/uploda/www.dotup.org2158244.c.html
Hash_funcs.c : http://www.dotup.org/uploda/www.dotup.org2158249.c.html
Hash_message.c : http://www.dotup.org/uploda/www.dotup.org2158250.c.html
Hash.c : http://www.dotup.org/uploda/www.dotup.org2158254.c.html
開放番地法を用いたハッシュ表の作成
- bitter_fox
- 記事: 607
- 登録日時: 15年前
- 住所: 大阪府
Re: 開放番地法を用いたハッシュ表の作成
http://dixq.net/forum/viewtopic.php?f=3&t=9370カイト さんが書きました:Linux c言語 gcc
c言語初心者です。
ハッシュ法の開放番地法を用いてハッシュ表を作るプログラムを作っています。
なんとかエラーをなくし、プログラムも動くようになったのですが、異常に実行速度が遅いです。
どこが原因なのか、また改善方法を教えてください。
こちらのトピックを放置しないようにお願いします。
同時進行はマナー違反にならないでしょうが、片方を放置することはマナー違反になるかと思います。
別々にアップロードされますと一つ一つダウンロードしていく必要があり非常に手間がかかります。カイト さんが書きました:プログラムが長いので、お手数ですが以下のファイルを参照してください。
よろしくお願いします。
Hash_main.c : http://www.dotup.org/uploda/www.dotup.org2158246.c.html
utilities.c : http://www.dotup.org/uploda/www.dotup.org2158241.c.html
hash_open.h : http://www.dotup.org/uploda/www.dotup.o ... 2.txt.html
Hash_open.c : http://www.dotup.org/uploda/www.dotup.org2158244.c.html
Hash_funcs.c : http://www.dotup.org/uploda/www.dotup.org2158249.c.html
Hash_message.c : http://www.dotup.org/uploda/www.dotup.org2158250.c.html
Hash.c : http://www.dotup.org/uploda/www.dotup.org2158254.c.html
また、.cファイルにおいて一部化けてしまっておりコンパイル・解読不可能となっています。
zipか何かにまとめてアップロードしていただけますか?
utilities.c
{\rtf1\ansi\ansicpg932\deff0\deflang1033\deflangfe1041{\fonttbl{\f0\froman\fprq1\fcharset128 \'82\'6c\'82\'72 \'82\'6f\'83\'53\'83\'56\'83\'62\'83\'4e;}}
{\*\generator Msftedit 5.41.21.2508;}\viewkind4\uc1\pard\lang1041\f0\fs20 // \'93\'fc\'97\'cd\'88\'f8\'90\'94 msg : \'8f\'6f\'97\'cd\'83\'81\'83\'62\'83\'5a\'81\'5b\'83\'57\par
// narg : \'83\'52\'83\'7d\'83\'93\'83\'68\'83\'89\'83\'43\'83\'93\'88\'f8\'90\'94\'82\'cc\'90\'94\par
// argc : \'83\'52\'83\'7d\'83\'93\'83\'68\'83\'89\'83\'43\'83\'93\'88\'f8\'90\'94\par
void check_argc(char *msg, int narg, int argc) \{ // \'88\'f8\'90\'94\'8c\'9f\'8d\'b8\par
if (argc != narg) \{\par
printf("%s\u165?n", msg) ;\par
exit(0) ;\par
\}\par
return ;\par
\}\par
\par
// \'93\'fc\'97\'cd\'88\'f8\'90\'94 fname : \'83\'74\'83\'40\'83\'43\'83\'8b\'96\'bc\par
// mode : \'83\'74\'83\'40\'83\'43\'83\'8b\'83\'82\'81\'5b\'83\'68\par
FILE *open_file(char *fname, char *mode) \{\par
FILE *fp ;\par
if ((fp = fopen(fname, mode)) == 0) \{ //\'83\'74\'83\'40\'83\'43\'83\'8b\'82\'cc\'83\'49\'81\'5b\'83\'76\'83\'93\par
printf("%s \'82\'aa\'83\'49\'81\'5b\'83\'76\'83\'93\'82\'c5\'82\'ab\'82\'dc\'82\'b9\'82\'f1\u165?n", fname) ;\par
exit(0) ;\par
\}\par
return fp ;\par
\}\par
\par
// \'93\'fc\'97\'cd\'88\'f8\'90\'94 fp : \'83\'74\'83\'40\'83\'43\'83\'8b\'83\'7c\'83\'43\'83\'93\'83\'5e\par
// str : \'83\'4c\'81\'5b(\'95\'b6\'8e\'9a\'97\'f1\'81\'7c\'92\'50\'8c\'ea)\par
int getword(FILE *fp, char *str) \{ // (\'83\'8c\'83\'52\'81\'5b\'83\'68\'82\'a9\'82\'e7)\'92\'50\'8c\'ea\'82\'cc\'93\'c7\'8d\'9e\'82\'dd\par
int i = 0 ; // \'95\'b6\'8e\'9a\'82\'cc\'88\'ca\'92\'75\par
unsigned int c ; // \'95\'b6\'8e\'9a\par
while(((c = getc(fp)) != EOF) && !isalpha(c)) ; // \'94\'f1\'89\'70\'8e\'9a\'93\'c7\'94\'f2\'82\'ce\'82\'b5\par
while(isalpha(c)) \{\par
str[i++] = tolower(c) ; // \'8f\'ac\'95\'b6\'8e\'9a\'89\'bb\par
c = getc(fp) ; // 1\'95\'b6\'8e\'9a\'82\'b8\'82\'c2\'93\'c7\'82\'de\par
\}\par
str[i] = '\u165?0' ;\par
return i; // \'95\'b6\'8e\'9a\'97\'f1\'82\'cc\'92\'b7\'82\'b3\par
\}\par
}
-
カイト
Re: 開放番地法を用いたハッシュ表の作成
自分の中では解決したのですが、解決ボダン押すのを忘れてました。bitter_fox さんが書きました: http://dixq.net/forum/viewtopic.php?f=3&t=9370
こちらのトピックを放置しないようにお願いします。
同時進行はマナー違反にならないでしょうが、片方を放置することはマナー違反になるかと思います。
失礼しました。
アップロードに慣れていないもので。別々にアップロードされますと一つ一つダウンロードしていく必要があり非常に手間がかかります。
また、.cファイルにおいて一部化けてしまっておりコンパイル・解読不可能となっています。
zipか何かにまとめてアップロードしていただけますか?
zipにまとめましたので、よろしくお願いします。
http://www.dotup.org/uploda/www.dotup.o ... 6.zip.html