Hàm sắp xếp trong dslk

Mọi người xem em với. Trong danh sách liên kết đơn dang LIFO thì hàm sắp xếp dc viết như thế này.nhưng có điều là ở hai vòng for ở dưới là như thế nào ạ… em không hiểu lắm !

void Swap(NODE *&first)
{
	NODE*P, *Q;
	int TG;
	for (P = first; P->next != NULL; P = P->next)
	for (Q = P->next; Q != NULL; Q = Q->next)
	if (P->info > Q->info)
	{
		TG = P->info;
		P->info = Q->info;
		Q->info = TG;
	}

}

Tham khảo Selection Sort. Mà thớt code hẳn Natural Merge Sort cho máu.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?