1の#include <stdio.hの> 2の#include < ストリング・H> 3 使用して 名前空間STDを、 4 5 の#define BEAD(i、j)のビーズは[iが最大+ jを*] 6 7 // 上記のアルゴリズムを実行する機能 8 空隙 beadSort(INT *、INT LEN) 9 { 10 // 最大の要素を探す 11 INTを maxは= [ 0 ]。 12 のための(INTは私= 1 ; I <LEN; I ++ ) 13 もし([I]> MAX) 14 最大値= [I]。 15 16 // 分配内存 17個の 符号なしchar型のビーズ[マックス* LEN]。 18 のmemset(ビーズ、0、はsizeof (ビーズ))。 19 20 // 摆珠子 21 のために(INT iが= 0 ; I <LEN; I ++ ) 22 のための(INT J = 0 ; J <[I]; J ++ ) 23 BEAD(i、j)は= 1 。 24 25 用(INT = J 0、J <マックス; J ++ ) 26である { 27 // 各ポスト上にあるどのように多くのビーズCOUNT 28 INT SUM = 0 ; 29 用(INT Iは= 0 ; I <lenは、I ++ ) 30 { 31は SUM = + ビーズ(I、J); 32 BEAD(I、J)= 0 ; 33である } //各列の統計的な高さ 34である 35個の // ビーズが自由落下 36の ための(INT;サム-私はLENを= 私は<lenは、I ++ ) 37 BEAD(I、J)= 1 。//私层J列摆珠子 38 } 39 40 // 入れビーズ使用して、配列内の値ソート 41 用(INTを iは= 0 ; I <LEN; I ++ ) 42 { 43 INT J。 44 のための(j = 0 ; J <最大&& BEAD(I、J); J ++ )。 45 46 A [I] = J。 47 } 48 } 49 50 //ドライバ関数アルゴリズムをテストするために 51 INT メインを() 52 { 53 のint [] = { 5、3、1、7、4、1、1、20 }。 54 INT LEN = はsizeof()/ はsizeof([ 0 ])。 55 56 beadSort(LEN)。 57 58 のために(INTは私= 0 ; I <LEN; I ++ ) 59 のprintf("%のD 」、[I]); 60 61 リターン 0 ; 62 }
memsetを
1の#include <iostreamの> 2の#include <CStringの> 3 4 INT ()メイン 5 { 6 INT [ 20 ]。 7 のstd ::のmemset(0、はsizeof A)。 8 用(intは愛:A)はstd :: coutの<< 愛<< "「; 9 } // 20 * 0
1 / * memsetの例* / 2の#include <stdio.hの> 3の#include < 文字列・H> 4 5 INT メイン() 6 { 7 チャー STR [] = " ほぼすべてのプログラマは、memsetを知っている必要があります!" 。 8 のmemset(STR、' - '、6 )。 9つの プット(STR)。 10 リターン 0 ; 11 } 12 // 出力 13 // ------すべてのプログラマはmemsetのを知っている必要があります!
ビーズソート理論基準
https://www.cnblogs.com/kkun/archive/2011/11/23/2260301.html