删除数组中多余整数(可以用来估算随机数库函数的”性能“)

       最近在复习数据结构,看到书上的一道例题,觉得可以用作其他用:通过重复数字的总数除以所生成的随机数总数,大概估计一下随机的”周期“。当然,我就是随便玩玩,真正要测试随机库函数的性能应该比这复杂得多。

//version1:
#include <stdio.h>
#include <stdlib.h>
#define maxn 100000

int s[maxn];

int delRedundancy(int [],int);

int main()
{
    freopen("x1.out","w",stdout);
    srand(time(NULL));
    int i;
    for(i=0;i<maxn;i++)
        s[i]=rand()%(5000-100)+100;
    delRedundancy(s,maxn);
    printf("\n%d\n",delRedundancy(s,maxn));
    return 0;
}


int delRedundancy(int a[],int n)
{
    int i,j,k=0;
    for(i=1;i<n;i++)
    {
        for(j=0;j<=k;j++)
            if(a[i]==a[k])
                break;
        if(j>k&&++k!=j)
            a[k]=a[i];
    }
    for(i=0;i<=k;i++)
    {
        printf("%6d ",a[i]);
        if((i+1)%8==0)
            printf("\n");
    }
    return k+1;
}
       
//version2:
#include <stdio.h>
#include <stdlib.h>
//#define maxn 100000

//int s[maxn];

int delRedundancy(int [],int);

int main()
{
    freopen("x1.in","r",stdin);
    freopen("x1.out","w",stdout);
    srand(time(NULL));
    int i,maxn;
    int *s;
    scanf("%d",&maxn);
    s=(int *)malloc(sizeof(int)*maxn);
    for(i=0;i<maxn;i++)
        s[i]=rand()%(5000-100)+100;
    delRedundancy(s,maxn);
    printf("\n%d\n",delRedundancy(s,maxn));
    free(s);
    return 0;
}


int delRedundancy(int a[],int n)
{
    int i,j,k=0;
    for(i=1;i<n;i++)
    {
        for(j=0;j<=k;j++)
            if(a[i]==a[k])
                break;
        if(j>k&&++k!=j)
            a[k]=a[i];
    }
    for(i=0;i<=k;i++)
    {
        printf("%6d ",a[i]);
        if((i+1)%8==0)
            printf("\n");
    }
    return k+1;
}

    以下为某两次测试的输出数据:

NO1:

  4533   2304   1700   3578   3884   4232   4158   2651 
  1001   2924    575   3184   4520   4611   3089   3223 
  1601    862   3134    656   2835   4554   1912   3901 
  4020   4804    408   2866    347   1088   1420   1550 
   960   2539   1524   1554   2739   1068    615   2650 
  1415   2750    513   4318   3152   3911   4380    895 
  1399   1888   3403   4158   4337   2527   1714   1161 
  3007   3229   1075   3035    340   1510   3333   2232 
  3131   4497    263   3702   2247   1453   2063   4465 
   196   1220   2456    718   3259   1745   3632   4998 
  1785   3373   3890    381   2529   3805   3523   4713 
  1904   2523   4084   1255   1996    630   2987   4301 
  2303    643   2685    237   4533   2304   1700   3578   3884   4232   4158   2651 
  1001   2924    575   3184   4520   4611   3089   3223 
  1601    862   3134    656   2835   4554   1912   3901 
  4020   4804    408   2866    347   1088   1420   1550 
   960   2539   1524   1554   2739   1068    615   2650 
  1415   2750    513   4318   3152   3911   4380    895 
  1399   1888   3403   4158   4337   2527   1714   1161 
  3007   3229   1075   3035    340   1510   3333   2232 
  3131   4497    263   3702   2247   1453   2063   4465 
   196   1220   2456    718   3259   1745   3632   4998 
  1785   3373   3890    381   2529   3805   3523   4713 
  1904   2523   4084   1255   1996    630   2987   4301 
  2303    643   2685    237 

100

NO2:

  4859    700    577   4678   1465   3689   2423   1468 
   592    909    484   4221   3351   2776   3881    328 
  1324   3476   2766   3627   2405   2752    967   2532 
  4458   4838   1343   2234   3435   3079   3234   3372 
  4639    477    160    185   1905   2733   4664   1017 
  2086   1883    883   3823    212   2830   2422   2119 
  4453   2800   2788    274   1251   2638   2400    892 
  2923   2552   2629   4108   3487   2127   2979    870 
  4924   2215    883   3057   2408   3723   3258   1880 
  1884   4898    931   2151   3585    695   1433   1198 
  2476    213   4810    901   4456   2413    193   3104 
  1523   2439    681   4897    871   3363   4723   3436 
  1838   2156   2302   2610   1876    981   1989   2733 
  2957   4332    888   2022   4947   4711   1231   2048 
  3300   3149   4516   3681    891   2921   3983   1623 
   163   3485   3066   2952   3216   4654   4682   3049 
  1906   2393   1128   2807   2119   4633   4708   2971 
   305   2243   4300    996   3881   2578   2200   1910 
   126    393    873   1529   4376   2434   2342   1254 
   270   4393   4406   1170   2365   4967   2507    677 
  1843   4739    727   4813   2329   1402   4308   3014 
  2089   3477    229   2404   3483   3001   1424   3947 
  1452   1582   1642   1098    703   1856   3509   1400 
   504   4510   2907   1786   1334   2840   1287    149 
   194    316   1313   1471   4904   3307    182   3080 
  2064   2189    929   2183   3929   2310   4626   4384 
  2604   2294   1331   3784   2449    128   1398   4319 
  4417   4438   1899   3009   3588    972   1114   4481 
  2229   4166   3322   4262   4426   2338   1891   3798 
   714   2055   2334   4180   2172   1306   4736   3532 
  4102   2731   1404   2054   2429   1884   3155   1355 
  4526    824   1560    855   3238   4695    616   4848 
  3718   4711    980   4709   2050   1382   4370    699 
   351   2495   2437   3316   3575   1890   1180   1196 
  3392    672    176   2721   2175   3062   3133   1717 
  3138   1064    758   2315   2200   2373   3388   3251 
  2256   2657   3430   1641   4281   2287   2922    133 
   216   1117   2513   2118    782   1856   3559   4636 
  3120   3112   1085   1832   1528   2228    652   4001 
  2858   4006    115    554   3142   3070   2068   2409 
  3700   1491    131   1798   1230    341   4250   4272 
  2908   2605   2528   2455   2814   3470   1940   2535 
  2553    233   2885   1512   2307    584   1836   4458 
  3217   1178   2001   1243    305   2250   2222   3003 
  2869    748    668   2687   4589   4492    731   1917 
  3360   4931   4196    635   4134   3359   1465   2670 
  4928   4294   4553   1692   3108    428   1545    365 
  4043   4656   1046   4495   4912   1073    295   3672 
  1007   2750   3209   4829    162   3656   2877   4024 
  2927   1811   4554   3941   4554    782   2441   4040 
  1836    939   1917   1645   2976   3326   4810    125 
  3624   4800   4960   3329   1996   1799   2295    409 
  4859   2496   4610   4715   3298   4082   3504   4504 
   197   4749    858    929    662   2837   3711   3302 
  3233   2792   4193   3351   2630   2141    196   4595 
   545   1186   2076   1438   1231   1357   1433    334 
  3092   4202   3478   1546   4988   1480   1928   1661 
  1714   2925   3752   3996   2359   4247   4492   3035 
  2835    761   2748   4761   2934    637   2975   1259 
  1649   4139   2381    626   2943   2369   2931   3322 
  4270    168   2011   3661   4636    931   4572   4625 
  3291   4839   2664    682   4989   4204   2536    412 
  2923   3238   3871    103   1832   1841   2151   2820 
   909    429   2613   1732    864   3660   3503   2006 
  4085   3242    787   2509    259    348   4761    577 
  3795    340    409   2063   2506   2696    562   4960 
  2400   4559    902   2547   2313   1615   3636   3710 
   859   2581   3398   3404   3872    255   2074   3209 
  1894   4252   2443    210   3184   3337    787   4064 
   858   1354   1556   1093   3712   1115   3196   2732 
   771   2148   2405   1630   1076   1818   1773    919 
  4029   2632    381   2099   4457   2672   1004   1612 
  3476   2015   4631   3427   1915    212   2950    948 
  2209   4831   1093   1099   3154   3181   2264    404 
   595   2341   3692   4607   4766   2043   1079   3788 
  3443    300   2594    349    455   4769   2721   4554 
  2043   2421    626   1628   1637   3211    182   2921 
   867   1929    964   1679    121   2382   4363   4143 
   132   1091   2131   1532   3938   4512   4606   3088 
  3751   2991   4589   1557   4544   1197   1756   2332 
  2132   1283   1690    158   2777   1176   4754   1264 
  3316   1294   1193   3609   2615   1270    229   3074 
  4066   2032    209   2933   3992   1218   2610   3776 
  1635    987   4201    200    150    875    979   4029 
  2142   3326   3069   3701   2843   3646   1140   2981 
  2865   4249   2631   3639   2250    129   4862   2044 
  1146   1482    331   4283   2508   2713    115   2039 
  3870    222   1324    198   1773   2189    260    458 
   770   3192   3296   4948   4084   3193   3582   4767 
  1689   2037    844   1222   2418   3712   4538   2026 
  3079   3439   2361   3762    275   3189   2517   1515 
  2525   1447    968   1442   1695   4622   1376   1219 
  1602   4439   1123   2364   2763   4821    361   4343 
  1652   1248    186   1589   1754   1333   1832    115 
  3801   3053    875   1953   1896   3763    579    436 
  1599   2690   3162    100   1842   2022   2803    703 
  3624    237    726    489    188   1465   4324   3516 
   319   4821   3397   1341   2406   4541   4289   2700 
  2445   3154   2608   2149   2015   3889   3202   1124 
  1716    167   2026   4545   2749   4037   1856    759 
  1215   4612   1296   3202   2711   3395   4193    523 
   144    412   3639   4693   1766   1485   2061   2189 
  4870    788   1046   2385   3993   1985   1590   2324 
  2265   2374   2927   4725   3565   3347   2353   2726 
  3448   1299   2246    555   2129   2378   1922   2588 
   514   2657   2559   3559    739   2543   3132    585 
   696   2518   1527   4634   4597    933   2019   1974 
  2928   2523    123   3095    516   2000   3580    701 
  3458   1318   3209    313   3549   1083   1372   3258 
  4474   4476    188   2667    371   1129   2689   3980 
  2807   4220   1344    711   2575   1351   2564   3934 
  1548   1206   3092   1452   1309   4372   4894   2972 
  1109   1936   2503   4376   2728   4504   3103   2005 
   366   4637   1679   4250   2161   4618   1194   2956 
  4480   3021   2909   4437   1720   1586   1675   3288 
  4830   3635   4695    931   3989   3075   1123    782 
  1158   1675    200   2651   1692   4342   3147   4226 
  1325   1324   2908   4980   2542   3722   4073   2586 
  2654   3431   2422   3244   4435   4454    930   4410 
  4776    966   4748   2009   2154   1318   1862   4467 
   691   4598   3026   4291   1388   4425    972   3477 
  2715   1938   2731   2704   1768   3116   3959    401 
   694   4473    898   1667   1936   1930   1054   1067 
  3177   3675   1754   1438   2407    343   2381   2420 
  3223   4689   1691   1252   1369   1718   1317   3833 
  4859    700    577   4678   1465   3689   2423   1468 
   592    909    484   4221   3351   2776   3881    328 
  1324   3476   2766   3627   2405   2752    967   2532 
  4458   4838   1343   2234   3435   3079   3234   3372 
  4639    477    160    185   1905   2733   4664   1017 
  2086   1883    883   3823    212   2830   2422   2119 
  4453   2800   2788    274   1251   2638   2400    892 
  2923   2552   2629   4108   3487   2127   2979    870 
  4924   2215    883   3057   2408   3723   3258   1880 
  1884   4898    931   2151   3585    695   1433   1198 
  2476    213   4810    901   4456   2413    193   3104 
  1523   2439    681   4897    871   3363   4723   3436 
  1838   2156   2302   2610   1876    981   1989   2733 
  2957   4332    888   2022   4947   4711   1231   2048 
  3300   3149   4516   3681    891   2921   3983   1623 
   163   3485   3066   2952   3216   4654   4682   3049 
  1906   2393   1128   2807   2119   4633   4708   2971 
   305   2243   4300    996   3881   2578   2200   1910 
   126    393    873   1529   4376   2434   2342   1254 
   270   4393   4406   1170   2365   4967   2507    677 
  1843   4739    727   4813   2329   1402   4308   3014 
  2089   3477    229   2404   3483   3001   1424   3947 
  1452   1582   1642   1098    703   1856   3509   1400 
   504   4510   2907   1786   1334   2840   1287    149 
   194    316   1313   1471   4904   3307    182   3080 
  2064   2189    929   2183   3929   2310   4626   4384 
  2604   2294   1331   3784   2449    128   1398   4319 
  4417   4438   1899   3009   3588    972   1114   4481 
  2229   4166   3322   4262   4426   2338   1891   3798 
   714   2055   2334   4180   2172   1306   4736   3532 
  4102   2731   1404   2054   2429   1884   3155   1355 
  4526    824   1560    855   3238   4695    616   4848 
  3718   4711    980   4709   2050   1382   4370    699 
   351   2495   2437   3316   3575   1890   1180   1196 
  3392    672    176   2721   2175   3062   3133   1717 
  3138   1064    758   2315   2200   2373   3388   3251 
  2256   2657   3430   1641   4281   2287   2922    133 
   216   1117   2513   2118    782   1856   3559   4636 
  3120   3112   1085   1832   1528   2228    652   4001 
  2858   4006    115    554   3142   3070   2068   2409 
  3700   1491    131   1798   1230    341   4250   4272 
  2908   2605   2528   2455   2814   3470   1940   2535 
  2553    233   2885   1512   2307    584   1836   4458 
  3217   1178   2001   1243    305   2250   2222   3003 
  2869    748    668   2687   4589   4492    731   1917 
  3360   4931   4196    635   4134   3359   1465   2670 
  4928   4294   4553   1692   3108    428   1545    365 
  4043   4656   1046   4495   4912   1073    295   3672 
  1007   2750   3209   4829    162   3656   2877   4024 
  2927   1811   4554   3941   4554    782   2441   4040 
  1836    939   1917   1645   2976   3326   4810    125 
  3624   4800   4960   3329   1996   1799   2295    409 
  4859   2496   4610   4715   3298   4082   3504   4504 
   197   4749    858    929    662   2837   3711   3302 
  3233   2792   4193   3351   2630   2141    196   4595 
   545   1186   2076   1438   1231   1357   1433    334 
  3092   4202   3478   1546   4988   1480   1928   1661 
  1714   2925   3752   3996   2359   4247   4492   3035 
  2835    761   2748   4761   2934    637   2975   1259 
  1649   4139   2381    626   2943   2369   2931   3322 
  4270    168   2011   3661   4636    931   4572   4625 
  3291   4839   2664    682   4989   4204   2536    412 
  2923   3238   3871    103   1832   1841   2151   2820 
   909    429   2613   1732    864   3660   3503   2006 
  4085   3242    787   2509    259    348   4761    577 
  3795    340    409   2063   2506   2696    562   4960 
  2400   4559    902   2547   2313   1615   3636   3710 
   859   2581   3398   3404   3872    255   2074   3209 
  1894   4252   2443    210   3184   3337    787   4064 
   858   1354   1556   1093   3712   1115   3196   2732 
   771   2148   2405   1630   1076   1818   1773    919 
  4029   2632    381   2099   4457   2672   1004   1612 
  3476   2015   4631   3427   1915    212   2950    948 
  2209   4831   1093   1099   3154   3181   2264    404 
   595   2341   3692   4607   4766   2043   1079   3788 
  3443    300   2594    349    455   4769   2721   4554 
  2043   2421    626   1628   1637   3211    182   2921 
   867   1929    964   1679    121   2382   4363   4143 
   132   1091   2131   1532   3938   4512   4606   3088 
  3751   2991   4589   1557   4544   1197   1756   2332 
  2132   1283   1690    158   2777   1176   4754   1264 
  3316   1294   1193   3609   2615   1270    229   3074 
  4066   2032    209   2933   3992   1218   2610   3776 
  1635    987   4201    200    150    875    979   4029 
  2142   3326   3069   3701   2843   3646   1140   2981 
  2865   4249   2631   3639   2250    129   4862   2044 
  1146   1482    331   4283   2508   2713    115   2039 
  3870    222   1324    198   1773   2189    260    458 
   770   3192   3296   4948   4084   3193   3582   4767 
  1689   2037    844   1222   2418   3712   4538   2026 
  3079   3439   2361   3762    275   3189   2517   1515 
  2525   1447    968   1442   1695   4622   1376   1219 
  1602   4439   1123   2364   2763   4821    361   4343 
  1652   1248    186   1589   1754   1333   1832    115 
  3801   3053    875   1953   1896   3763    579    436 
  1599   2690   3162    100   1842   2022   2803    703 
  3624    237    726    489    188   1465   4324   3516 
   319   4821   3397   1341   2406   4541   4289   2700 
  2445   3154   2608   2149   2015   3889   3202   1124 
  1716    167   2026   4545   2749   4037   1856    759 
  1215   4612   1296   3202   2711   3395   4193    523 
   144    412   3639   4693   1766   1485   2061   2189 
  4870    788   1046   2385   3993   1985   1590   2324 
  2265   2374   2927   4725   3565   3347   2353   2726 
  3448   1299   2246    555   2129   2378   1922   2588 
   514   2657   2559   3559    739   2543   3132    585 
   696   2518   1527   4634   4597    933   2019   1974 
  2928   2523    123   3095    516   2000   3580    701 
  3458   1318   3209    313   3549   1083   1372   3258 
  4474   4476    188   2667    371   1129   2689   3980 
  2807   4220   1344    711   2575   1351   2564   3934 
  1548   1206   3092   1452   1309   4372   4894   2972 
  1109   1936   2503   4376   2728   4504   3103   2005 
   366   4637   1679   4250   2161   4618   1194   2956 
  4480   3021   2909   4437   1720   1586   1675   3288 
  4830   3635   4695    931   3989   3075   1123    782 
  1158   1675    200   2651   1692   4342   3147   4226 
  1325   1324   2908   4980   2542   3722   4073   2586 
  2654   3431   2422   3244   4435   4454    930   4410 
  4776    966   4748   2009   2154   1318   1862   4467 
   691   4598   3026   4291   1388   4425    972   3477 
  2715   1938   2731   2704   1768   3116   3959    401 
   694   4473    898   1667   1936   1930   1054   1067 
  3177   3675   1754   1438   2407    343   2381   2420 
  3223   4689   1691   1252   1369   1718   1317   3833 

1000

猜你喜欢

转载自blog.csdn.net/u25th_engineer/article/details/79994938
今日推荐