2006-08-01から1ヶ月間の記事一覧
前回のアルゴリズムを少しだけ高速にしてみる。ただし計算オーダーは変わらず 改良点 ・テキスト側とパターン側各々に番兵を用いる ・1文字目をループの外側に出すこれにより2番目のループ計算による無駄を少なくする。 2番目のループは文字列の照合で用いる…
今回から文字列のアルゴリズムについて紹介していきます。 今回は単純な文字列照合のアルゴリズムです。 文字列照合はエディタにおける文字探索やテキストデータベースにおける文字検索に応用されます。 今回はC言語における文字列の添字表現とソースの可読…
なぜか駄文ばかり書いていたこのブログも1000達成したので記念ソースを書きました。 見た目で理解できなそうなプログラムをちょっと目指しましたwmakeして実行してのお楽しみ☆ #include #include #define $C printf( #define c_ 0x54,0x49 cc(char *c){*c=0x…
まずは単純な文字列をループバック(127.0.0.1)で送る送受信プログラムを作る。 比較のためにSTREAM型(TCP)とDATAGRAM型(UDP)の送受信プログラムを用意する //DATAGRAM型(UDP)の文字列受信サーバプログラム #include #include #include #include #include #in…
今回はマージソートについて扱う。 仕組みは簡単である。配列のデータを要素1つずつ細かく分けてそれを大小比較してマージ(併合)するこれを繰り返し行う。ソート一回における扱う要素は2つ、4つ…とふくれあがる。これにより単純なソーティングよりも高速な処…
今回は前回に引き続き整列アルゴリズムの効率的手法である、クイックソートとヒープソートを述べる。 まずは、クイックソートから述べる。 クイックソートは前回の単純整列法を改良したものである。配列のindexの中間値にあるデータを基準値とし大小に別けて…
比較的平易な整列アルゴリズムを示す。 //simplesort.c //This program is sorting upstair data gradually //author u5 //2006 7 AUG //how to Make // gcc simplesort.c -o simplesort //how to exec // %./simplesort #include void swap(int *p,int *q);…
構造体配列における線形探索と2分探索 #include #include #define SIZE 17struct cell{ int key; char info[20]; }; struct cell a[SIZE]; //構造体配列における線形探索関数 struct cell linear_search(int target){ int p; for(p=0;p if(target==a[p].key)…