Chinaunix首页 | 论坛 | 博客
  • 博客访问: 210884
  • 博文数量: 51
  • 博客积分: 2505
  • 博客等级: 少校
  • 技术积分: 595
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-20 16:59
文章分类

全部博文(51)

文章存档

2010年(5)

2009年(39)

2008年(7)

我的朋友

分类: C/C++

2009-01-07 15:36:40

1,Syntax:

    #include 
void qsort( void *buf, size_t num, size_t size, int (*compare)(const void*, const void *) );
2,qsort函数使用快速排序的方法,将buf中的数据按照compare定义的大小顺序进行排序。使用qsort前需要先定义compare函数。
3,例子:ACM, DNA Sorting
#include

typedef struct
{
char str[51];
int measure;
} STRMEAS;

STRMEAS g_seq[100];
int N, M;

//Pay attention to prototype of this function.
int fun_com(const void* a, const void* b)
{
STRMEAS *pa = (STRMEAS*) a;
STRMEAS *pb = (STRMEAS*) b;
return pa->measure - pb->measure;
}

fun_msr()
{
int i, j, k, m, msr;
char t;
for (k = 0; k < M; ++ k)
{
msr = 0;
STRMEAS sm;
//Compute measure for each string.
for (i = 0; i < N; ++ i)
{
sm = g_seq[k];
t = sm.str[i];
m = 0;
for (j = i + 1; j < N; ++ j)
{
if (t > sm.str[j])
++ m;
}
msr += m;
}
g_seq[k].measure = msr;
}
}

main()
{
int i;
scanf("%d%d", &N, &M);
for (i = 0; i < M; ++ i)
scanf("%s", g_seq[i].str);
fun_msr();
qsort(g_seq, M, sizeof(STRMEAS), fun_com);
for (i = 0; i < M; ++ i)
printf("%s\n", g_seq[i].str);
}
阅读(2112) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~