在結構上我有我需要的升序排列的結構:排序根據日期和時間元素
typedef struct CallLogSearchDataStruct
{
char * date;
char * time;
char * bParty;
char * aParty;
float duration;
char * cleardownCause;
struct CallLogSearchOutboundStruct * outboundLegs;
int maxDataCol;
} callLogSearchDataStruct;
我需要梳理基礎上按升序排列的日期和時間結構。日期和時間是按以下格式
日期:16/05/2011
時間:01:20:03
我需要按升序排列上述兩個字段進行排序,我一直在尋找快速排序,但我想不出一種能夠做到的方式。我以下面的方式調用函數。
qsort(callLogSearchData, dataRow, sizeof(callLogSearchDataStruct), sortCompare);
我的功能如下
int sortCompare(const void * a, const void * b)
{
const callLogSearchDataStruct *u1 = a;
const callLogSearchDataStruct *u2 = b;
if (u1->date < u2->date)
{
return -1;
}
else if (u1->date > u2->date)
{
return 1;
}
else
{
return 0;
}
}
當我做上面的代碼,它似乎並沒有螺絲結構,即佈局時我出口排序,並改了結構的內容到文件中,所有內容都按照錯誤的列順序出現,但沒有問題,除非比較沒有完成時排序順序錯誤。
任何你不以[unix時間戳格式](http://en.wikipedia.org/wiki/Unix_time)存儲你的日期和時間的原因?您將節省內存,您的比較功能將很簡單。 – Michael
現在,您不會比較日期,而是指向日期的指針。 – Matthias
@Michael這主要是由於這是格式日期是需要導出到文件 – Boardy