PDA

View Full Version : [Q] Hỏi về giải thuật sắp xếp.



No Mercy
09-11-2002, 20:30
Em hiện chỉ biết 3 giải thuật sort là: bubble sort, quick sort và heap sort. Anh chị nào làm ơn giải thích kỹ càng dùm em cái quick sort(0 đệ qui) và heap sort. Nếu có VD thì càng tốt. Thanks a lot.

danceswithwolves
10-11-2002, 09:26
bạn nên nghiên cứu quyển Giáo trình thuật toán ấn bản 22- NAT Press; sách gốc là Introduction to Algorithm) sẽ có đầy đủ phần mô tả và ví dụ cho InsertionSort, SelectionSort, BubbleSort, MergeSort, HeapSort, QuickSort... Trên dđ khó mà mô tả kỹ lưỡng hơn sách được.

No Mercy
10-11-2002, 09:39
Vậy sách đó bán ở đâu vậy? Photo Lộc có 0?

n2v82
10-11-2002, 14:16
Giải thuật sắp xếp có 3 cách chủ yếu như trên được dùng nhiều trong giải toán tin. Tư tưởng chủ đạo của quick sort là phân vùng để sắp xếp. Ban đầu bạn có 1 cùng cần xếp là 1 ..n phần tử ban đầu. Cho hai biến chạy 1 chạy từ đầu đến cuối và 1 biến chạy ngược lại.Quá trình trên tiếp tục cho đến khi bạn phát hiện ra phần tử có giá trị lớn hơn (hoặc nhỏ hơn phần tử hiện tại) sau đó phân vùng tiếp ...
ví dụ : Xếp mảng a theo chiều tăng dần.
Dây là đoạn chương trình chính, bạn thử xem nhé !
Procedure Xep(dau,cuoi:Integer)
Var
i,j:Integer;
Begin
i:=dau;
j:=cuoi
While (i<cuoi) and (a[i]<a[cuoi]) Do Inc(i);
While (j>dau) and (a[j]<a[cuoi]) Do Inc(j);
If a[i]<a[j] Then
Begin
DoiCho(a[i],a[j]);
Inc(i);
Dec(j);
End;
If i<cuoi Then Xep(i,cuoi);
If j>dau Then Xep(j,dau);
End;

danceswithwolves
12-11-2002, 15:14
bản tiếng việt do NAT Press dịch thì bán đầy (vd : NS Nguyễn Văn Cừ). Còn bản tiếng Anh có thể đặt photo tại phòng photo khoa CNTT ĐH BK Tp.HCM. Quyển này rất đầy đủ và kỹ lưỡng.

còn bằng có tiền surf NET thì download quyển này cũng hay lắm (5*) : Ftp://Shark2.WhatIsNet.Net/-=Others=-/Ebook/Dr.Dobb.s.Essential.Books.rar

Good luck !

dokhangluan
05-07-2008, 22:37
ví dụ về 3 giải thuật sắp xếp