比较计数法-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);
      }
}

运行结果如下:

 

 

posted @ 2021-09-14 10:01  吃蒸糕的狮子  阅读(182)  评论(0编辑  收藏  举报