2. Các giải thuật sắp xếp cơ bản (Sắp xếp trên dãy/mảng)
2.5. Sắp xếp hịa nhập:
– Phương pháp:
Cũng sử dụng giải pháp chia để trị
• Bước 1: Chia mảng A ban đầu thành 2 mảng con B và C.
• Bước 2, 3: Sắp xếp mảng con B và C bằng đệ quy (Điều kiện dừng: khi mảng con cần sắp chỉ cĩ 1 phần tử)
• Bước 4: Trộn (merge) 2 mảng con đã sắp B, C thành mảng A được sắp.
Thuật tốn:
int Partition(int a[], int p, int r) {
int t;
// phân hoạch
return t; }
void QuickSort(int a[], int p, int r) {
int t = Partition(a, p, r);
if (p< t-1) QuickSort(a, p, t-1); if (t+1< r) QuickSort(a, t+1, r);
}
Chương 6: Tìm Kiếm 1. Khái quát về tìm kiếm
Trong thực tế, khi thao tác, khai thác dữ liệu chúng ta hầu như lúc nào cũng phải thực hiện thao tác tìm kiếm. Việc tìm kiếm nhanh hay
chậm tùy thuộc vào trạng thái và trật tự của dữ liệu trên đĩ. Kết quả của việc tìm kiếm cĩ thể là khơng cĩ (khơng tìm thấy) hoặc cĩ (tìm thấy). Nếu kết quả tìm kiếm là cĩ tìm thấy thì nhiều khi chúng ta cịn phải xác định xem vị trí của phần tử dữ liệu tìm thấy là ở đâủ Trong phạm vi của chương này chúng ta tìm cách giải quyết các câu hỏi nàỵ
Trước khi đi vào nghiên cứu chi tiết, chúng ta giả sử rằng mỗi phần tử dữ liệu được xem xét cĩ một thành phần khĩa (Key) để nhận diện, cĩ kiểu dữ liệu là T nào đĩ, các thành phần cịn lại là thơng tin (Info) liên quan đến phần tử dữ liệu đĩ. Như vậy mỗi phần tử dữ liệu cĩ cấu trúc dữ liệu như sau:
typedef { T struct DataElement Key; InfoType } DataType; Info;
Trong tài liệu này, khi nĩi tới giá trị của một phần tử dữ liệu chúng ta muốn nĩi tới giá trị khĩa (Key) của phần tử dữ liệu đĩ. Để đơn giản, chúng ta giả sử rằng mỗi phần tử dữ liệu chỉ là thành phần khĩa nhận diện.
Việc tìm kiếm một phần tử cĩ thể diễn ra trên một dãy/mảng (tìm kiếm nội) hoặc diễn ra trên một tập tin/ file (tìm kiếm ngoại). Phần tử cần tìm là phần tử cần thỏa mãn điều kiện tìm kiếm (thường cĩ giá trị bằng giá trị tìm kiếm). Tùy thuộc vào từng bài tốn cụ thể mà điều kiện tìm kiếm cĩ thể khác nhau song chung quy việc tìm kiếm dữ liệu thường được vận dụng theo các thuật tốn trình bày sau đâỵ