链表中的冒泡排序法
关键代码
while(flag){ flag = false; p = L->next; q = L; while(p->next != NULL){ if(p->data.score < p->next->data.score){ q->next = p->next; p->next = p->next->next; q->next->next = p; q = q->next; p = q->next; flag = true; } else{ p = p->next; q = q->next; } } }并不会只跑一趟,发生一次交换就有flag=true,就会说明发生过交换还可以继续排序,直到所有排序完成后,判断时就会一直走else部分,所以最终flag是false,就会跳出循环了
