比较计数法-C语言示例
用比较计数法对一些数字组合进行升序排序;是一个很简单直接的办法;
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 5
typedef unsigned char UINT8;
typedef unsigned short UINT16;
typedef unsigned int UINT32;
typedef unsigned int UINT;
/*初始化参数*/
typedef struct
{
/*要比较的数目*/
unsigned int num;
/*存储数字比较次数 */
unsigned int con;
/*保留字段*/
unsigned int reserved[18];
} CON_INIT_PARAM, *PCON_INIT_PARAM;
void main()
{
UINT i = 0;
UINT j = 0;
CON_INIT_PARAM a[20];
memset(a, 0, sizeof(CON_INIT_PARAM)*20);
for(i = 0; i < N; i++)
{
scanf("%d",&a[i].num);
a[i].con = 0;
}
for(i = N-1; i > 0;i--)
{
for(j = i-1; j > 0;j--)
{
if(a[i].num < a[j].num)
{
a[j].con++;
}
else
{
a[i].con++;
}
}
}
for(i=0; i<N; i++)
{
printf("CON_INIT_PARAM num = %d, con = %d\n",a[i].num,a[i].con);
}
}
运行结果如下: