数据结构:多关键字排序

MulitCompare.c

#include<stdio.h>

typedef struct _tag_DataElem
{
	char desc[20];
	int key1;
	int key2;
} DataElem;

int compare1(DataElem* ld,DataElem* rd)
{
	int ret = 0;
	
	if(ld->key1>rd->key1)
	{
		ret = 1;
	}
	else if(ld->key1==rd->key1)
	{
		if(ld->key2>rd->key2)
		{
			ret = 1;
		}
		
		if(ld->key2<rd->key2)
		{
			ret = -1;
		}
	}
	else
	{
		ret = -1;
	}
	
	return ret;
}

int compare2(DataElem* ld,DataElem* rd)
{
	return (ld->key1*100+ld->key2)-(rd->key1*100+rd->key2);
}

int main()
{
	DataElem d1 = {"d1",91,88};
	DataElem d2 = {"d2",90,95};
	
	printf("Compare1 %s and %s:%d\n",d1.desc,d2.desc,compare1(&d1,&d2));
	printf("Compare2 %s and %s:%d\n",d1.desc,d2.desc,compare2(&d1,&d2));
	
	return 0;
}

运行效果:
《数据结构:多关键字排序》

    原文作者:顾道长生'
    原文地址: https://blog.csdn.net/wl1780852311/article/details/99287147
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞