連結串列排序之選擇排序
阿新 • • 發佈:2019-01-28
選擇排序的優點在於它每次選擇出最大或者最小的值,將它們進行排序
此選擇排序的思想在於選擇出最小的節點,建立新連結串列,將原連結串列的最小節點刪除,繼續迴圈
TYPE* lain(int l, TYPE *head)
{
TYPE *first, *tail, *p_min, *min, *p;
first = NULL;
while (head != NULL) {
for (p = head, min = head; p->next != NULL; p = p->next) {
if (p->next ->pstudent.darrScores[l - 1] < min->pstudent.darrScores[l - 1]) {
p_min = p;
min = p->next;
}
}
if (first ==NULL) {
first = min;
tail = min;
}
else
{
tail->next = min;
tail = min;
}
if (min == head) {
head = head->next;
}
else
{
p_min->next = min->next;
}
}
tail->next = NULL;
head = first;
return head;
}