马赛克007欢迎你

htt://shexinwei.blogbus.com

http://www.cppblog.com/shexinwei

感谢大家的支持

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

posted on 2010-09-20 17:33 马赛克007 阅读(1645) 评论(2)  编辑 收藏 引用

评论

# re: n个小于一百万可重复数的排序[未登录] 2010-09-20 19:01 幻想搭积木

话说这不就是桶式排序Bucket sort么。。。。。。。
  回复  更多评论   

# re: n个小于一百万可重复数的排序 2010-09-26 17:05 jaken

那如果里面存在不是整数呢?
这种排序适用性不强  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年9月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

导航

统计

公告

QQ:306334649 本博客所发代码皆为作者原创,大家可以随便使用。

常用链接

留言簿(1)

随笔档案

文章分类

我的博客

搜索

最新评论

阅读排行榜

评论排行榜