Quicksort trên Danh sách liên kết đơn

void quick_sort(LIST &&l)  
{        
	LIST l1;LIST l2;  
	if(l.pHead==NULL) // rong  
		return;  
	else
	{		
		khoitao(l1);  
		khoitao(l2);  
		NODE *x=l.pHead;  
		l.pHead=x->pNext;  
		while(l.pHead!=NULL)
		{  
			NODE *p=l.pHead;  
			l.pHead=p->pNext;  
			p->pNext=NULL;  
			if(p->data<=x->data)  
				themdau2(l1,p);  
			else  
				themdau2(l2,p);  
		}  
		quick_sort(l1);  
		quick_sort(l2);  
		if(l1.pHead==NULL)  
			l.pHead=x;  
		else  
		{  
			l.pHead = l1.pHead;  
			l1.pTail->pNext = x;  
		}  
		x->pNext = l2.pHead;    
		if(l2.pHead==NULL)  
			l.pTail = x;  
		else  
		{  
			l.pTail = l2.pTail;  
		}  
	}
}  

Nhận xét

Bài đăng phổ biến từ blog này

Kinh nghiệm tạo biểu đồ Use Case

PHÉP TOÁN XOR

Phần mềm hỗ trợ vẽ bản đồ tư duy trên máy tính

Power Designer 12.5