用比較計數法對一些數字組合進行升序排序;是一個很簡單直接的辦法;
#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);
}
運作結果如下:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLi0zaHRGcWdUYuVzVa9GczoVdG1mWfVGc5RHLwkzX39GZhh2csATMflHLwEzX4xSZz91ZsADMx8FdsYkRGZkRG9lcvx2bjxSa2EWNhJTW1AlUxEFeVRUUfRHelRHL2EzXlpXazxyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3PnVGcq5SNwQzYhJDMwUmY4kTZjdzMkFGNiFjYzEWOjF2MwQDNz8CX0EzLclDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL5M3Lc9CX6MHc0RHaiojIsJye.jpeg)