冒泡排序: //简单数据类型 void SetOrder(int *Array) { // 升序 int iX,iY; int ltag; for(iY = 0; iY < m_iTagCount; iY++) { for(iX = 1; iX < m_iTagCount - iY; iX++) { if(Array[iX] < Array[iX-1]) { ltag = Array[iX-1]; Array[iX-1] = Array[iX]; Array[iX] = ltag; } } } } //单向链表 void SetOrder(List **hdr) { List *head = *hdr; List *q,*tail,*p = (List*)malloc(sizeof(List)); p->next = head; head = p; tail = NULL; while(tail != head->next) { p = head; q = p->next; while(q->next != tail) { if (p->next->time > q->next->time) { p->next = q->next; q->next = q->next->next; p->next->next = q; } p = p->next; q = p->next; } tail = q; } p = head->next; free(head); *hdr = p; }