n个小于一百万可重复数的排序

n个小于一百万可重复数的排序

#define  RAND
#define  RANK

#ifdef RAND
#include 
< iostream >
using   namespace  std;
#include 
< time.h >
enum {MAX=10000} ;
int  main()
{
    ofstream 
out("rand.txt");
    
//输出总数
    out<<MAX<<" ";
    
    srand((unsigned 
int)time(NULL));
    
    
for(int i = 0;i < MAX;i++)
    
{
        
out<<rand()<<" ";
    }

    
out.close();
    cout
<<"out over"<<endl;
    
return 1;
}

#endif

#ifdef RANK
#include 
< iostream >
using   namespace  std;
int  main()
{
    
int max = 0;
    ifstream 
in("rand.txt");

    
//获取要排序数的个数
    in>>max;

    
//初始化统计数组
    int *num = new int[RAND_MAX];
    
for (int i = 0;i < max;i++)
    
{
        num[i] 
= 0;
    }


    
int tmp = -1;
    
//读取数据,并统计
    for (i = 0;i < max;i++)
    
{
        
in>>tmp;
        num[tmp] 
+= 1;
    }


    
//输出
    ofstream out("out.txt");
    
for (i = 0;i < max;i++)
    
{
        
if(num[i] != 0)
            
for (int j = 0;j < num[i];j++)
            
//如果有多个,则输出多个
                out<<i<<" ";
            }

    }

    
out.close();
    
in.close();
    
return;
}

#endif

你可能感兴趣的:(n个小于一百万可重复数的排序)