Một số phương pháp sẵp xếp và tìm kiếm ngoài

52 226 0
Một số phương pháp sẵp xếp và tìm kiếm ngoài

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm Mục lục Trang Lời nói đầu Chơng Mô hình xử lý 1.1 Tập tin 1.2 Lu trữ hai cấp 1.3 Mẫu tin bị chốt 1.4 Tổ chức mẫu tin 1.5 Mẫu tin có chiều dài thay đổi 1.6 Đánh giá phép xử lý 10 Chơng Sắp xếp nhớ 11 2.1 Phơng pháp trộn trực tiếp 11 2.2 Phơng pháp trộn tự nhiên 16 2.3 Trộn nhiều đờng cân 18 2.4 Trộn nhiều giai đoạn 21 2.5 Sắp xếp đĩa từ 28 2.6 Những nhận xét chung 31 Chơng Tìm kiếm nhớ 33 3.1 File tuần tin 34 3.2 File băm 36 3.3 File có số 39 3.4 Cây tìm kiếm 44 3.4.1 Cây tìm kiếm đa nhánh 44 3.4.2 B-Cây 45 3.5 Những nhận xét chung 50 Kết luận 52 Tài liệu tham khảo 53 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm Lời nói đầu Trong thực tế, việc tổ chức xếp tìm kiếm quan trọng Trớc đây, đợc làm quen với số phơng pháp xếp tìm kiếm nhng với giả thiết liệu đa vào máy không lớn, nghĩa lu trữ đồng thời đợc nhớ trong, trình xử lý Tuy nhiên, thực tế cho thấy khối lợng liệu ngày tăng vợt dung lợng nhớ máy tính điện tử Vậy vấn đề đặt làm để giải đợc vấn đề đó? Vì vậy, Luận văn tốt nghiệp Cử nhân khoa học, mạnh dạn chọn đề tài: "Một số phơng pháp xếp tìm kiếm nhớ ngoài" Luận văn đợc chia thành chơng Chơng 1: "Mô hình xử lý ngoài", bàn luận kỹ thuật lu trữ vật lý Chơng 2: "Sắp xếp nhớ ngoài", giới thiệu chi tiết phơng pháp để xếp lại tập tin theo thứ tự; loạt phơng pháp đợc phát triển, đợc mô tả đợc so sánh với Chơng 3: "Tìm kiếm nhớ ngoài", giới thiệu chi tiết phơng pháp nâng cao để thực công việc tìm kiếm Để hoàn thành Luận văn, nhận đợc hớng dẫn nhiệt tình Thầy giáo Trần Xuân Hào Nhân dịp cho phép bày tỏ lòng biết ơn sâu sắc đến Thầy giáo Đồng thời xin chân thành cảm ơn Thầy giáo, Cô giáo thuộc tổ "Tin học đại cơng phơng pháp giảng dạy" động viên giúp đỡ nhiều trình học tập, rèn luyện thực đề tài Tuy nhiên, thời gian có hạn lực non nớt nên Luận văn không tránh khỏi sai sót Rất mong đợc góp ý quý báu từ phía Thầy giáo, Cô giáo bạn bè Tác giả Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm Chơng mô hình xử lý Các cấu trúc liệu mà xét trớc giả thiết liệu đa vào máy không lớn đợc lu trữ nhớ Nhng nh ta muốn quản lý tất phiếu nhân công dân điều tra dân số muốn lu trữ thông tin thuế toàn quốc gia? Rõ ràng khối lợng liệu toán vợt dung lợng nhớ trong, chúng phải lu trữ nhớ trớc xử lý Sau xem xét mô hình xử lý (hay gọi mô hình liệu vật lý): Cơ sở liệu tập mẫu tin, mẫu tin chứa nhiều trờng Giá trị trờng kiểu nh số nguyên, số thực chuỗi ký tự có chiều dài cố định Chúng ta xem trỏ nh kiểu bản, tham chiếu đến mẫu tin Cũng có số kiểu khác nh chuỗi ký tự chiều dài thay đổi đợc xem nh kiểu Các mẫu tin đợc dùng để lu đối tợng liệu có mô hình liệu khác Chẳng hạn: Một lu nh mẫu tin; thành phần đợc lu trờng Một mẫu tin logic, đợc dùng mô hình mạng mô hình phân cấp, đợc lu nh mẫu tin Các trờng mẫu tin logic trờng mẫu tin vật lý trờng hợp mô hình phân cấp, trờng mẫu tin logic mẫu tin ảo thuộc kiểu T tơng ứng mẫu tin vật lý trỏ đến mẫu tin thuộc kiểu T Một đối tợng OPAL đợc lu nh mẫu tin Các biến thể giá trị đối tợng bản, thí dụ nh số nguyên, có giá trị đợc lu trữ vật lý trờng, biến thể với giá trị đối tợng Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm lớp ngời sử dụng định nghĩa lại đợc biểu diễn trờng chứa trỏ đến đối tợng (nghĩa trỏ đến mẫu tin biểu diễn đối tợng này) 1.1 Tập tin Giống nh mô hình liệu cấp cao, mẫu tin thờng đợc xem thể lợc đồ Nghĩa phải xử lý tập mẫu tin có số lợng trờng, trờng tơng ứng có kiểu liệu, tên ý nghĩa Chẳng hạn mẫu tin biểu diễn quan hệ trờng cho thuộc tính quan hệ Chúng ta gọi danh sách tên trờng kiểu liệu tơng ứng khuôn dạng cho mẫu tin Chúng ta dùng thuật ngữ tập tin để biểu thị tập mẫu tin có khuôn dạng Vì tập tin cách biểu diễn vật lý thích hợp cho quan hệ Khái niệm tập tin theo cách khác với khái niệm thông thờng Tập tin, Dòng chuỗi ký tự, thuộc kiểu khác, truy xuất đợc cách Quét từ đầu đến cuối Trong chơng chơng thấy có nhiều cách khác để truy xuất tập tin, mẫu tin thờng không đợc lu trữ theo kiểu Dòng liệu 1.2 Lu trữ hai cấp Thiết bị lu trữ tin vật lý dùng để ghi mẫu tin tập tin xem nh mảng byte đợc đánh số Chẳng hạn thiết bị lu trữ tin vùng nhớ ảo có byte đợc đánh số từ đến số lớn, lên đến 24 230 Bộ nhớ ảo đợc lu trữ nhớ thứ cấp hay gọi nhớ phụ, chẳng hạn nh băng từ, đĩa từ Các thiết bị có đặc điểm truy nhập hoàn toàn khác với nhớ Chẳng hạn, với băng từ: Dữ liệu đợc ghi nhận băng dọc theo chiều dài nó, chúng đợc đọc ghi đầu từ Khi có lệnh đọc ghi, băng từ đợc kéo chạy qua đầu từ Nh phải xuất đoạn Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm băng bị bỏ qua khởi động nh giảm tốc độ để dừng, nghĩa xuất Khoảng trống cần thiết băng Vì băng từ phải chia thành khối khối có đoạn phân cách khối Kích thớc khối đợc quy định tuỳ thuộc vào hệ điều hành (tuỳ theo máy), từ 512 byte đến 4096 byte Mỗi khối có địa địa tuyệt đối phơng diện nhớ Tệp đợc lu trữ nhiều khối bao gồm trọn vẹn số mẫu tin (trong khối có byte thừa không dùng mẫu tin nào) Mẫu tin có địa chỉ, địa tuyệt đối byte mẫu tin địa khối chứa cộng thêm với số byte khối đứng trớc byte mẫu tin mà thờng đợc gọi độ dời Với đĩa từ trống từ cách tổ chức tơng tự nh Chỉ có khác là: Dữ liệu đợc phân theo khối lu trữ rãnh đồng tâm mặt đĩa hay trống, đầu từ đợc đặt tới rãnh đọc ghi liệu Trong trình xử lý, việc chuyển giao liệu từ nhớ vào nhớ ngợc lại, đợc thực theo khối thông qua vùng đệm Đó miền nhớ trong, đợc dành riêng, có kích thớc nh kích thớc khối 1.3 Mẫu tin bị chốt Khi có trỏ đến mẫu tin, nói mẫu tin bị chốt lại; ngợc lại nói không bị chốt Khi mẫu tin không bị chốt, di chuyển bên khối, chí từ khối đến khối khác mà không gây hậu tệ hại nào, miễn di chuyển khối có ý nghĩa phơng diện cấu trúc lu trữ liệu Tuy nhiên mẫu tin bị chốt di chuyển chúng sang khối khác đợc trỏ địa tuyệt đối, di chuyển chúng bên phạm vi khối trỏ cặp (b, k) Một ràng buộc khác gặp phải mẫu tin bị chốt xoá chúng hoàn toàn đợc Nếu có trỏ p đến mẫu tin r, Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm thời điểm xoá r, sau lại đặt mẫu tin r vào vị trí trớc r Khi theo trỏ p, thấy mẫu tin r vị trí r, dấu vết cho thấy mẫu tin vừa tìm đợc mẫu tin r p đến Dù có sử dụng cặp khối-khoá làm trỏ, không bảo đảm an toàn vấn đề này, vấn đề trỏ h ảo hay tham chiếu h ảo Lý r có giá trị khoá nh r, đợc chèn vào tập tin sau r bị loại bỏ đi, nh không vi phạm giá trị khoá Để tránh trỏ h ảo, mẫu tin cần có bit gọi bit Xoá, đợc đặt mẫu tin bị xoá Vùng lu trữ cho mẫu tin không đợc dùng lại, truy tìm mẫu tin, chẳng hạn cách theo trỏ, nhận mẫu tin bị xoá, nghĩa mẫu tin thực không bỏ qua 1.4 Tổ chức mẫu tin Khi xếp trờng mẫu tin, phải đặt chúng theo cách để truy xuất đợc giá trị chúng Nếu tất trờng có chiều dài cố định cần chọn thứ tự cho trờng Vì trờng bắt đầu byte định đợc gọi offset, đợc tính từ đầu mẫu tin Cho nên dò theo mẫu tin biết đợc khuôn dạng nó, tìm trờng biết vị trí bắt đầu mẫu tin, cách di chuyển phía trớc số byte với offset trờng Cũng có nhiều byte không dùng để chứa liệu Chẳng hạn cần: Một số byte cho biết khuôn dạng mẫu tin Nếu cần lu trữ mẫu tin thuộc nhiều kiểu khác hay thuộc nhiều quan hệ khác nhau, cần phải có mã biểu thị cho kiểu cho quan hệ mẫu tin Một cách Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm khác, khối lu trữ kiểu mẫu tin, khối kiểu tất mẫu tin Một hay nhiều byte biểu diễn chiều dài mẫu tin Nếu mẫu tin thuộc kiểu có trờng cố định chiều dài đợc khai báo ngầm thông tin kiểu Một byte chứa bit Xoá, nh mô tả Một bit Đã dùng/ cha dùng, đợc giữ byte riêng chia sẻ byte với thông tin khác nh bit "Xoá" Bit cần có khối đợc chia thành vùng, vùng giữ mẫu tin có chiều dài cố định Khi xem xét vùng, cần biết đợc liệu có thực giữ mẫu tin hay trống nhng số liệu cũ Không gian thừa Chúng ta đặt byte không sử dụng vùng mẫu tin cho tất trờng bắt đầu byte có địa số dễ sử dụng Chẳng hạn nhiều máy hoạt tác hiệu số nguyên bắt đầu địa chia chẵn cho 4, giả sử yêu cầu đợc thoả Ví dụ 1.1: Chúng ta giả sử mẫu tin thuộc kiểu numbers chứa trờng sau: Trờng NUMBER, thuộc kiểu số nguyên đợc dùng làm khoá Trờng dùng để lu số nguyên dơng Trờng NAME, byte cho biết chữ tiếng anh số đợc lu trờng NUMBER Tất số nguyên dơng có tên khởi đầu chữ từ Soften, nhng chúng vai trò quan trọng Trờng SQUARE giữ giá trị bình phơng số trờng Trong ví dụ SQUARE thuộc kiểu số nguyên Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm Với giả thiết số nguyên chiếm byte, ba trờng thảy cần byte Chúng ta thêm byte đầu mẫu tin Byte chứa bit Đã dùng/ cha dùng bit "Xoá" Chúng ta gọi byte INFO NUMBER 11 SQUARE INFO NAME WASTE Hình1.1 Khuôn dạng cho mẫu tin có chiều dài cố định 1.5 Mẫu tin có chiều dài thay đổi Khi trờng có chiều dài thay đổi, phải giải thêm vấn đề định khuôn dạng mẫu tin cố định trờng offset nh mẫu tin có khuôn dạng biết trớc, Chúng ta sử dụng hai chiến lợc tổng quát nh sau: Cho trờng có chiều dài thay đổi bắt đầu dấu đếm biểu thị chiều dài trờng Nếu có nhiều trờng có chiều dài thay đổi nên có dấu đếm đầu mẫu tin ghi nhận tổng chiều dài mẫu tin, nguyên tắc thông tin thừa đầu mẫu tin, đặt trỏ vị trí bắt đầu trờng thay đổi Chúng ta cần trỏ vị trí kết thúc trờng cuối Hơn nên cho tất trờng cố định nằm trớc trờng thay đổi, vị trí kết thúc nhóm trờng cố định vị trí bắt đầu nhóm trờng có chiều dài thay đổi Ví dụ 1.2: Chúng ta xét mẫu tin numbers ví dụ 1.1 nhng trờng SQUARE giữ chuỗi ký số thập phân Chúng ta đặt trớc byte trờng SQUARE byte biểu thị số byte đợc dùng SQUARE Do chuỗi ký số SQUARE bị giới hạn khoảng đến 255 ký tự, cách xử lý thông Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm thờng cho chuỗi ký tự có chiều dài thay đổi Các trờng byte thông tin mẫu tin nh sau: Byte chứa chiều dài toàn mẫu tin, bao gồm trờng thay đổi Vì giới hạn cho SQUARE thờng 255 byte toàn mẫu tin không đợc vợt 255 byte Byte giữ bit INFO nh ví dụ 1.1 Byte giữ trờng NAME Byte bỏ trống 5 Byte - giữ trờng NUMBER Byte giữ chiều dài trờng SQUARE Từ byte trở lu giá trị SQUARE dới dạng chuỗi ký tự Nội dung hai mẫu tin cho hai số 13 đợc trình bày nh hình 1.2 Chú ý có trờng thay đổi nên chiều dài mẫu tin chiều dài trờng dễ liên hệ, bỏ byte byte nhng không đợc đồng thời bỏ hai byte Nghĩa giá trị byte lớn giá trị byte byte Chúng ta cần nhớ khuôn dạng này, có trờng sau SQUARE phải nhờ đến byte để tìm chúng Chẳng hạn lý thuyết, offset trờng theo sau SQUARE phải cộng thêm nội dung byte 10 INFO t WASTE (a) Mẫu tin cho số NUMBER = 9 Luận văn tốt nghiệp 12 INFO Một số ph ơng pháp xếp tìm kiếm t 10 11 13 WASTE (b) Mẫu tin cho số NUMBER = 13 hình 1.2 Các mẫu tin có chiều dài thay đổi 1.6 Đánh giá phép xử lý Đối với thiết bị nhớ ngoài, việc đọc khối liệu nhớ vào vùng đệm nhớ ghi liệu vùng đệm nhớ vào khối nhớ đợc gọi phép truy nhập khối Cần ý rằng, việc chuyển khối liệu nhớ vào nhớ đòi hỏi nhiều thời gian việc xử lý liệu Ví dụ ta có khối gồm 1000 số nguyên đĩa quay với tốc độ 1000 vòng/phút Thời gian để đầu từ đặt vào rãnh chứa khối cộng với thời gian để khối đợc đặt dới đầu từ phải tốn khoảng 100 miligiây Trong với thời gian máy thực đợc 100000 lệnh, nghĩa thừa đủ để tính tổng 1000 số nguyên chí xếp chúng theo giải thuật xếp kiểu phân đoạn nhớ Vì đánh giá thời gian thực thuật toán thao tác với liệu đợc tổ chức dới dạng tệp, cần phải ý tới số lần cần thiết phải thực phép truy nhập khối Bởi kích thớc khối đợc ấn định hệ điều hành mà sử dụng nên làm giảm thời gian thực giải thuật cách tăng kích thớc khối lên, mà phải giảm số lần truy nhập khối cách khác Số lần thực phép truy nhập khối đợc dùng để biểu diễn tính hiệu thuật toán tệp 10 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm chốt vào chỗ, mà mẫu tin bị loại bỏ lại mẫu tin khối khối đợc hệ quản lý tệp giải phóng khỏi lớp để tái sử dụng sau Ví dụ: Giả sử cần loại bỏ mẫu tin có khoá 15 Đầu tiên thực việc tìm kiếm mẫu tin có khoá 15 nh trên, sau cho bit nhận giá trị ta đợc kết lu trữ nh sau: 36 92 232 21 49 169 121 58 143 195 211 Cấu trúc file băm cấu trúc có hiệu phép toán file đòi hỏi đến việc truy cập mẫu tin theo khoá Giả sử file có n mẫu tin, hàm băm đợc thiết kế tốt trung bình lớp chứa [n/k] mẫu tin Giả sử khối nh có m mẫu tin Nh lớp gồm khoảng [n/mk] khối Tức phép toán file băm có k lần nhanh so với tổ chức file 3.3 File có số Cấu trúc file băm đợc tạo dựa khoá mẫu tin Trong mục trình bày phơng pháp tổ chức file khác dựa vào khoá mẫu tin cách xếp mẫu tin theo thứ tự tăng dần giá trị khoá Cấu trúc file số đợc hình thành nh sau: Ta xếp mẫu tin file theo giá trị khoá tăng dần vào số khối cần thiết Ta xếp mẫu tin vào khối khối đầy Song thông thờng, khối ngời ta để dành không gian cho mẫu tin đợc thêm vào file sau Lý để phép toán bổ sung vào file đợc thực dễ dàng Ta gọi file gồm mẫu tin chứa khối file chính, để phân biệt với file số đợc tạo sau đây: 38 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm Hệ số khối cặp (v, b), b địa khối, v giá trị khoá nhỏ mẫu tin khối b Từ khối file chính, ta tạo file số, file gồm số khối file Các số khối đợc theo thứ tự tăng dần khoá vào số khối cần thiết Các khối đợc móc nối với tạo thành danh sách liên kết Trong trờng hợp file số gồm danh sách liên kết khối, khối chứa số khối file Một cách khác ta sử dụng bảng để lu giữ địa khối file số Ví dụ 3.3: Tệp gồm mẫu tin có khoá nh sau: 3, 5, 9, 15, 21, 36, 49, 58, 92, 121, 143, 169, 195, 211, 232 Giả sử khối chứa mẫu tin (với tệp mẫu tin đợc đại diện khoá) Song khối thực lu trữ mẫu tin (3 khoá) để phép toán file thực đơn giản Đầu tiên ta xếp khoá file theo thứ tự tăng dần vào khối, ta đợc: 15 21 36 49 58 92 121143 169 195 211 232 Tiếp theo Xây dựng tệp số: Chỉ số khối cặp (v, b), b địa khối đợc đánh số từ đến 4, v giá trị khoá nhỏ mẫu tin khối b v gồm: Khối có địa 0, v Khối có địa 1, v 15 Khối có địa 2, v 49 Khối có địa 3, v 121 Khối có địa 4, v 195 Cấu trúc file nh sau: 39 Luận văn tốt nghiệp 3 Một số ph ơng pháp xếp tìm kiếm 15 49 15 21 36 121 49 58 92 195 121143 169 195 211 232 Tìm kiếm: Giả sử ta cần tìm mẫu tin x với khoá v cho trớc Trớc hết ta cần tìm file số số (v 1, b1) cho v1 có giá trị lớn file số thoả mãn điều kiện v1 v Ta nói v1 phủ v Việc tìm kiếm file số giá trị khoá v phủ giá trị khoá v cho trớc thực cách tìm tìm kiếm nhị phân Trong tìm kiếm tuần tự, ta cần xem xét tất mẫu tin file số tìm thấy số (v1, b1) với v1 phủ v Nếu v nhỏ giá trị khoá mẫu tin file số điều có nghĩa file số không chứa giá trị khoá phủ v Phơng pháp có hiệu tìm kiếm nhị phân Giả sử mẫu tin file số đợc xếp vào khối đợc đánh số từ đến m Xét khối thứ [m/2], giả sử (v2, b2) mẫu tin khối So sánh giá trị khoá cho trớc v với giá trị khoá v2 Nếu v < v2 ta tiến hành tìm kiếm khối 1, 2, , [m/2] - Còn v v2, ta tiến hành tìm kiếm khối [m/2], [m/2] + 1, , m Quá trình đợc lặp lại ta cần tìm kiếm khối Lúc ta việc lần lợt so sánh giá trị khoá v cho trớc với giá trị khoá chứa khối Để tìm mẫu tin x với khoá v cho trớc, trớc hết ta tìm file số số (v1, b1) với v1 phủ v Sau lần lợt xét mẫu tin khối có địa b để phát mẫu tin có khoá v, không khối mẫu tin với khoá v Nếu file số không chứa giá trị khoá v1 phủ v, file không chứa mẫu tin có khoá v 40 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm Ví dụ: Với cấu trúc file ví dụ 3.3, giả sử tìm kiếm mẫu tin có khoá 21 Đầu tiên tìm file số cặp (v 1, b1) cho v1 giá trị lớn file số, thoả mãn v1 21, b1 đợc đánh số: 0, 1, 2, Việc tìm kiếm đợc thực hai cách nh sau: - Tìm kiếm tuần tự: Đọc lần lợt mẫu tin file số so sánh với 21: Mẫu tin < 21 Đọc tiếp lần lợt so sánh ta thấy mẫu tin có khoá 5, 15 bé 21 sau khoá 15 khoá 49 > 21 Nh ta tìm đợc cặp (15, 1) - Tìm kiếm nhị phân: Theo lu trữ nh ví dụ 3.3 file số có khối, chia đôi số khối ta có nửa số khối trớc gồm: 15 49 121 nửa số khối sau gồm: 195 Thực so sánh 21 với khoá 121, thấy 21 < 195 Nh ta tiếp tục tìm kiếm nửa trớc cách tiếp tục chia đôi số khối nửa trớc lần nữa, ta đợc khối : 15 49 121 So sánh 21 với 49, thấy 21 < 49 nên ta tìm kiếm nửa số khối trớc (chỉ có khối) Trên khối này, ta tìm đợc cặp (15, 1) Sau tìm đợc cặp số file số, tiếp tục thực tìm kiếm khối có địa 1: Đọc lần lợt khoá khối có địa tìm đợc khoá 21 41 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm Nh vậy, việc tìm kiếm không cần phải đọc hết tất mẫu tin file mà cần đọc mẫu tin file số để tìm cặp số mà chứa mẫu tin cần tìm sau lần lợt đọc mẫu tin khối có địa tơng ứng Bổ sung: Giả sử ta cần thêm vào file mẫu tin r với giá trị khoá v Giả sử file đ ợc chứa khối B1, B2, , Bk giá trị khoá mẫu tin khối Bi nhỏ giá trị khoá khối Bi+1 Trớc hết ta cần tìm khối Bi cần phải xếp mẫu tin r vào Muốn ta áp dụng thủ tục tìm kiếm file số để tìm số (v1, b1) với v1 phủ v Nếu tìm thấy Bi khối có địa b1, ngợc lại Bi khối B1 Trong trờng hợp Bi cha đầy r cha có khối Bi ta xếp mẫu tin r vào vị trí nó, tức phải đảm bảo trật tự tăng dần theo khoá Nếu Bi B1 sau thêm vào mẫu tin r, trở thành mẫu tin khối B1, ta cần phải tiến hành sửa đổi số khối B file số Trong trờng hợp Bi đầy, ta tiến hành xếp mẫu tin r vào vị trí Bi, thừa mẫu tin Tìm đến khối B i+1 (ta biết đợc địa khối Bi+1 cách tìm số) Nếu Bi+1 cha đầy ta xếp mẫu tin thừa Bi vào vị trí khối B i+1 đồng thời sửa lại số B i+1 file số Nếu khối đầy không tồn B i Bk ta thêm vào file khối xếp mẫu tin r vào khối Chỉ số khối thêm vào cần phải đợc xen vào file số Ví dụ: Cũng với cấu trúc lu trữ ví dụ 3.3, bổ sung vào file mẫu tin có khoá 65 Tìm đến khối mà chứa khoá 65 cách tìm cặp số (v 1, b1) cho v1 < 65 Dùng phép toán tìm kiếm trên, ta có cặp số (49, 2) Vì 42 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm lu trữ theo cách khối chừa chỗ trống xen khoá 65 vào trớc 92 lúc 92 bị đẩy vào chỗ trống cuối khối Lúc ta đợc cấu trúc nh sau: 3 15 49 15 21 36 121 49 58 65 92 195 121143 169 195 211 232 Loại bỏ: Để loại bỏ mẫu tin r có khoá v, ta áp dụng thủ tục tìm kiếm để định vị mẫu tin file Sau tiên hành xoá bỏ r nhiều cách khác nhau, chẳng hạn đặt lại giá trị bit đầy/ rỗng tơng ứng với mẫu tin cần loại bỏ đầu khối Ví dụ: Giả sử với cấu trúc lu trữ ví dụ 3.3, ta cần loại bỏ mẫu tin có khoá 21 Đầu tiên tìm khoá 21 giống nh trình bày phép toán tìm kiếm Sau tiến hành xoá mẫu tin có khoá 21 cách đặt lại giá trị bit 3.4 Cây tìm kiếm Mục đích nghiên cứu cấu trúc liệu biểu diễn file cho phép toán file đợc thực hiệu quả, tức với số lần thực phép toán truy cập khối đợc, cần phải tìm kiếm, bổ sung, loại bỏ sửa đổi mẫu tin file B- cấu trúc liệu đặc biệt thích hợp để biểu diễn file Trong mục trình bày B-cây kỹ thuật để thực phép toán tìm kiếm, bổ sung loại bỏ B-cây 3.4.1 Cây tìm kiếm đa nhánh (Multiway Search Trees) Cây tìm kiếm n nhánh tổng quát hoá tìm kiếm nhị phân, đỉnh có nhiều n Các đỉnh đợc gắn với giá trị khoá mẫu tin Nếu đỉnh A có r (r n) chứa r - khoá (k 1, 43 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm k2, , kr-1) k1 < k2 < < kr-1 (chúng ta giả thiết giá trị khoá đợc xếp giá trị tuyến tính) Tổng quát hoá tính chất khoá gắn với đỉnh tìm kiếm nhị phân, tìm kiếm n nhánh phải thoả mãn tính chất sau Nếu đỉnh A có r chứa khoá (k 1, k2, , kr-1) khoá chứa đỉnh thứ đỉnh A nhỏ k 1, khoá nhỏ chứa đỉnh thứ i (i = 2, 3, , r - 1) phải lớn k i-1 nhỏ ki, khoá chứa đỉnh thứ r phải lớn kr-1 Mỗi chứa số khoá, tối đa s 3.4.2 B-Cây B-cây loại đặc biệt tìm kiếm n nhánh cân B-cây đợc định nghĩa nh sau: B-cây cấp n tìm kiếm n nhánh thoả mãn tính chất sau: Nếu gồm có gốc gốc có hai nhiều n Mỗi đỉnh cây, trừ gốc, có n/2 nhiều n Tất mức (Nói cách khác, tất đờng từ gốc tới có độ dài) T tởng việc tổ chức File dới dạng B-cây nh sau ta xếp mẫu tin file (file chính) vào số khối cần thiết Mỗi khối Bcây Trong khối mẫu tin đợc xếp theo thứ tự tăng dần khoá Các số khối (các lá) lại đợc xếp vào số khối Trong khối này, số đợc xếp theo thứ tự tăng dần khoá Trong B-cây, khối đỉnh mức mức Ta lại lấy số khối vừa tạo xếp vào số khối Các khối lại đỉnh mức mức từ chúng đợc tạo Quá trình đợc tiếp tục số xếp gọn vào khối Khối đỉnh B-cây 44 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm Nh vây đỉnh B-cây khối Mỗi đỉnh B-cây có dạng (p0, v1, p1, v2, p2, , vm, pm) v1 < v2 < < vm (vi, pi), i m, số khối, tức vi giá trị khoá nhỏ khối, p i trỏ trỏ tới khối chứa khoá nhỏ vi, tức trỏ trỏ tới đỉnh thứ i đỉnh nói tới Lu ý giá trị khoá v0 không đợc lu giữ đỉnh để tiết kiệm nhớ Ví dụ 3.4: Hình sau biểu diễn B-cây cấp B-cây đợc tạo thành từ 11 khối đợc đánh số B1, B2, , B11 Mỗi khối đỉnh chứa đợc số Mỗi khối chứa đợc mẫu tin 21 143 B1 B5 15 B2 B6 Tìm kiếm: B392 58 21 36 49 B7 58 92 121 B8 B4 195 B9 143 169 B10 195 211 232 11 B Giả sử cần tìm mẫu tin r có khoá v cho trớc Chúng ta cần phải tìm đờng từ gốc B-cây tới lá, cho cần phải chứa mẫu tin r có file Trong trình tìm kiếm, giả sử thời điểm ta đạt tới đỉnh B Nếu khối B lá, ta tìm khối B xem có chứa mẫu tin r hay không Các mẫu tin xếp theo thứ tự tăng dần khoá, tìm kiếm khối B tiến hành kỹ thuật tìm kiếm tìm kiếm nhị phân 45 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm Nếu B đỉnh chứa (p0, v1, p1, v2, p2, , vm, pm) ta cần xác định vị trí giá trị khoá v dãy khoá v1, v2, ,vm Nếu v < v1 ta xuống đỉnh đợc trỏ p0 Nếu vi v < vi+1 ta xuống đỉnh đợc trỏ pi (i = 1, 2, , m 1) Còn < v ta xuống đỉnh đợc trỏ pn Bổ sung: Giả sử ta cần bổ sung vào B-cây mẫu tin r với khoá v Đầu tiên ta áp dụng thủ tục tìm kiếm để tìm khối B cần phải bổ sung mẫu tin r vào Nếu khối B đủ chỗ cho mẫu tin r ta xếp mẫu tin r vào khối B cho thứ tự tăng dần khoá đợc bảo tồn Chú ý rằng, r mẫu tin khối B, trừ B bên trái Nếu B bên trái giá trị nhỏ khối B mặt đỉnh tiền thân B Vì trờng hợp cần thêm mẫu tin r vào khối B xong, không cần sửa đổi với đỉnh tiền thân khối B Nếu B không đủ không gian để lu giữ mẫu tin r ta thêm vào B-cây mới, khối B chuyển nửa số mẫu tin cuối khối B sang khối B Sau xếp mẫu tin r vào khối B khối B cho đảm bảo đợc tính tăng dần giá trị khoá Giả sử Q cha B, ta biết đợc Q trình tìm kiếm, ta lu lại vết đờng từ gốc tới B Giả sử số khối B (v, p), v khoá nhỏ B, p địa chi khối B áp dụng thủ tục để bổ sung (v, p) vào khối Q Nếu khối Q không đủ chỗ cho (v, p) ta lại phải thêm vào B-cây đỉnh Q , em liền kề Q Sau lại tìm đến cha đỉnh Q để đa vào số khối Q Quá trình đợc tiếp diễn dẫn đến việc phải phân đôi số giá trị khoá gốc, nửa sau đợc chuyển vào khối Trong trờng hợp này, ta phải tạo gốc có hai con, gốc cũ, đỉnh đa vào 46 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm Ví dụ: Giả sử với cấu trúc lu trữ ví dụ 3.4, ta cần bổ sung mẫu tin có khoá 32 Trớc hết ta phải tìm khối cần phải đa mẫu tin vào Bắt đầu từ gốc B1, 21 < 32 < 143, ta xuống B Tại B3, 32 < 58, ta xuống B7, B7 lá, cần phải đa mẫu tin với khoá 32 vào B Nhng khối B7 đầy Ta thêm vào khối B12 xếp mẫu tin với khoá 21, 32 vào khối B7, xếp mẫu tin với khoá 36, 49 vào khối B12 Chỉ số khối B12chứa giá trị khoá 36 Cần phải xếp số B12 vào cha B7 B3 Nhng B3 đầy Thêm vào khối B13 Sau số khối B7, B12 đợc xếp vào B3 số khối B8, B9 đợc xếp vào B13 Bây số khối B13 58 địa khối B13 cần đợc xếp vào khối B1 Nhng B1 đầy thêm vào B-cây khối B 14 Xếp số B2, B3 vào B1, số B13, B4 vào B14 Vì B1 gốc, ta phải thêm vào gốc khối B15 xếp số B1 B14 vào B15 Kết ta có B-cây nh sau: 58 B15 21 B1 143 B14 195 36 B2 92 B3 B13 B4 143 169 B5 15 B6 21 32 B7 36 49 B12 58 B8 Loại bỏ: 47 92 121 B9 B10 195 211 232 B11 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm Giả sử ta cần loại khỏi B-cây mẫu tin r với khoá v Đầu tiên áp dụng thủ tục tìm kiếm để tìm B chứa mẫu tin r Sau loại mẫu tin r khối B Giả sử sau loại bỏ B không rỗng Trong trờng hợp này, r mẫu tin B, ta làm thêm Nếu r mẫu tin B sau xoá r, số B thay đổi Do ta cần tìm đến đỉnh Q cha B Nếu trởng Q giá trị khoá v số (v, p) B Q Trong trờng hợp ta cần tìm đến tiền thân A B cho A trởng cha A Khi giá trị khoá nhỏ B đợc chứa A Do A, ta cần thay giá trị khoá cũ v giá trị v Giả sử sau loại bỏ mẫu tin r, B trở thành rỗng Loại bỏ B khỏi B-cây Điều dẫn đến cần loại bỏ số B đỉnh cha Q B Nếu sau loại bỏ, số đỉnh Q [n/2] ta tìm đến đỉnh Q anh em liền kề đỉnh Q Nếu Q có nhiều [n/2] ta phân phối lại giá trị khoá Q Q cho hai có [n/2] số Q Q thay đổi Ta lại phải tìm đến tiền thân Q để phản ánh thay đổi Nếu Q có [n/2] con, ta kết hợp hai đỉnh Q Q thành đỉnh Một hai đỉnh bị loại khỏi Các khoá chứa đỉnh đợc chuyển sang đỉnh lại Điều dẫn đến cần loại bỏ số đỉnh bị loại khỏi cha Q Sự loại bỏ đợc thực cách áp dụng thủ tục loại bỏ trình bày Quá trình loại bỏ dẫn đến việc loại bỏ gốc cây, cần kết hợp hai gốc thành đỉnh, đỉnh trở thành gốc B-cây Ví dụ: Giả sử cần loại mẫu tin với khoá 58 khỏi B-cây hình Đầu tiên tìm chứa khoá 58 Đó khối B Xoá mẫu tin 58, khối B thành rỗng Tìm đến cha B8 B13 loại bỏ số B8 khỏi B13 B13 48 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm Số B13 [n/2] (ở [n/2] = [3/2] = 2) Tìm đến em liền kề B13 B4, số B4 hai Kết hợp hai đỉnh thành đỉnh B 13 Cần phải loại bỏ số khối B4 khỏi B14, B14 trở thành có Tìm đến anh liền kề B14 B1 Số B1 hai Kết hợp B1 B14 thành đỉnh B1, B1 trở thành gốc B-cây 21 92 B1 36 143 B2 B5 15 B6 195 B3 21 32 B7 36 49 B4 92 121 B8 B9 143 169 B10 195 211 232 B11 3.5 Những nhận xét chung Trong chơng đa phơng pháp tìm kiếm tập tin lớn đợc lu trữ đĩa thao tác tìm kiếm đĩa thú vị thực tế Với thiết bị chẳng hạn nh băng từ, việc tìm kiếm thoái hoá thành phơng pháp chậm tầm thờng: Để tìm kiếm phần tử đợc lu băng từ ngời ta làm tốt việc lắp băng từ đọc đến phần tử đợc tìm thấy Đặc biệt phơng pháp mà nêu tìm thấy phần tử từ đĩa chứa hàng tỷ từ mà cần hai lần truy xuất đĩa Cũng giống nh phơng pháp xếp ngoài, khía cạnh hệ thống việc dùng phần tử Nhập/Xuất phức tạp nhân tố yếu tính phơng pháp tìm kiếm nhng điều kiện hạn chế nên sâu nghiên cứu cách chi tiết Đối với phơng pháp xếp phơng pháp 49 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm ngoài hoàn toàn khác hẳn phơng pháp nội, nhng ngợc lại phơng pháp tìm kiếm mở rộng logic phơng pháp nội Tìm kiếm thao tác cho thiết bị đĩa Các tập tin đợc quản lý cho lợi dụng đặc trng thiết bị cụ thể để truy xuất thông tin hiệu tốt Các phơng pháp trên, đa mô hình đơn giản không xác hoàn toàn nh thực tế, mục đích giảng giải đặc trng phơng pháp Việc xác định phơng pháp tìm kiếm tốt cho ứng dụng cụ thể vô phức tạp vấn đề vợt phạm vi chơng Tuy nhiên đa vài cách tiếp cận tổng quát để vận dụng thực tế 50 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm Kết luận Kết luận văn đợc tóm tắt là: Thu nhận đợc khối lợng kiến thức đáng kể phơng pháp xếp tìm kiếm Trên sở khối lợng kiến thức thu đợc qua tìm hiểu lý thuyết chơng - tảng để phát triển chơng chơng - nội dung luận văn Qua nội dung so sánh phơng pháp xếp chơng 2, rút đợc phơng pháp có nhiều u điểm phơng pháp trộn nhiều đờng cân phơng pháp xếp đĩa từ Qua nội dung so sánh phơng pháp tìm kiếm chơng 3, rút đợc phơng pháp có nhiều u điểm phơng pháp tìm kiếm B-cây Sắp xếp tìm kiếm nhớ có nhiều phơng pháp khác nữa, song điều kiện cha cho phép nên sâu vào tìm hiểu hết tất phơng pháp Tôi hy vọng với phơng pháp khác, sẽ có đợc kết thú vị Kết có đợc tập dợt nghiên cứu, nhiều điều cần phải xem xét Rất mong quý Thầy giáo, Cô giáo bạn góp ý Một lần nữa, xin chân thành cảm ơn Thầy giáo hớng dẫn, Thầy giáo , Cô giáo tổ "Tin học đại cơng phơng pháp giảng dạy" Xin cảm ơn bố mẹ, gia đình bạn bè động viên giúp đỡ nhiều trình học tập làm luận văn Tài liệu tham khảo 51 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm [1] Đỗ Xuân Lôi, Cấu trúc liệu giải thuật, Nhà xuất Thống kê2000 [2] Robert Sedgewick, Cẩm nang thuật toán Bản dịch Trần Đan Th, Vũ Mạnh Tờng, Dơng Vũ Diệu Hà, Nguyễn Tiến Huy; Nhà xuất Khoa học Kỹ thuật-1994 [3] Niklaus Wirth Said That, Algorithms + data structures = programs, Prentice-Hall INC-1976 [4] Đinh Mạnh Tờng, Cấu trúc liệu & thuật toán, Nhà xuất Khoa học Kỹ thuật Hà Nội-2000 [5] Nguyễn Hồng Chơng, Cấu trúc liệu ứng dụng cài đặt C, Nhà xuất TP Hồ Chí Minh-1999 [6] Larry Nyhoff-Sanfort Leedstma, Lập trình nâng cao với cấu trúc liệu Bản dịch Lê Minh Trung; Nhà xuất Đà Nẵng-1998 [7] Jeffrey D Ullman, Nguyên lý hệ sở liệu sở tri thức Bản dịch Trần Đức Quang; Nhà xuất Thống kê-2002 [8] PTS Lê Minh Trung - KS Phạm Hữu Trí - KS Trần Tiến An, Bài tập cấu trúc liệu thuật toán, Nhà xuất TP Hồ Chí Minh-1994 [9] Quách Tuấn Ngọc, Turbo Pascal Cẩm nang tra cứu, Nhà xuất Giáo dục [10] Bùi Thế Tâm, Giáo trình Turbo Pascal 7.0, Nhà xuất Giao thông vận tải 52 [...]... đã cho ta thấy cùng một phơng pháp sắp xếp nhng nếu đặt trong trờng hợp: Số khoá cần sắp xếp là một luỹ thừa của 2 (giả sử là 2 k ) và nh vậy thì luôn luôn có k lần chia và trộn Nếu xem một lần chia và trộn là 1 bớc thì có k bớc sắp xếp, trong khi có thể số khoá cần sắp xếp bé hơn 2 k thì số bớc cần thực hiện phải là k 15 Luận văn tốt nghiệp Một số ph ơng pháp sắp xếp và tìm kiếm ngoài bớc (nh ở 2 ví... nghiệp Một số ph ơng pháp sắp xếp và tìm kiếm ngoài Chơng 2 Sắp xếp trên bộ nhớ ngoài Phần lớn các phơng pháp sắp xếp ngoài sử dụng chiến lợc tổng quát: Tạo một lần duyệt trên tập tin cần sắp, chia nó thành các khối có kích thớc phù hợp và sắp xếp các khối này Sau đó trộn các khối này với nhau bằng cách duyệt vài lần tập tin, rồi lại tạo các khối đợc sắp lớn hơn cho đến khi sắp xong toàn bộ tập tin Đa số. .. 2.1 số khoá là 25 (=25) bé hơn số khoá trong ví dụ 2.2, song số bớc thực hiện sắp xếp vẫn phải là 5 Tức là bằng số bớc sắp xếp trong ví dụ 2.2 ) Nh vậy phơng pháp sắp xếp này sẽ hiệu quả cao hơn đối với số khoá cần sắp xếp là một luỹ thừa của 2 và khi này phơng pháp trộn trên sẽ đợc gọi là phơng pháp sắp xếp kiểu trộn nhị phân Vì vậy, chúng ta nên sử dụng phơng pháp này cho việc sắp xếp tập tin có số. .. khối) Một lần nữa ta chia đôi nó thành F 1 và F2 bằng cách sao một nửa số khối hai khoá lên F1 và nửa còn lại lên F2, ta đợc: F1: A E RS GO IR NT GI F2: E N GX AA DP LM E MN Tiếp tục trộn các khối tơng ứng trong F1 và F2 để tạo ra các khối bốn khoá và ghi vào F (tệp F2 chứa một khối một khoá cuối cùng cũng đợc sao vào F ), sau lần trộn này ta đợc: 12 Luận văn tốt nghiệp Một số ph ơng pháp sắp xếp và tìm. .. tiên của băng F 2 để đợc một khối có thứ tự và ghi vào F Tiếp tục trộn các khối tơng ứng trong F1 và F2 để đợc các khối lớn hơn, ghi vào F Bớc 2: Lại chia F bằng cách sao các khối theo thứ tự luân phiên vào hai băng F1 và F2 Trộn các khối tơng ứng trong F1 và F2 để đợc các khối lớn hơn các khối ở bớc 2 Rồi ghi vào F 16 Luận văn tốt nghiệp Một số ph ơng pháp sắp xếp và tìm kiếm ngoài Lặp lại các bớc trên... trong bộ nhớ và có sẵn nhiều băng từ 18 Luận văn tốt nghiệp Một số ph ơng pháp sắp xếp và tìm kiếm ngoài Đầu tiên đọc 3 khoá một lúc, sắp chúng để tạo thành khối 3 khoá và xuất các khối đợc sắp vì vậy, trớc tiên chúng ta đọc A S O và xuất khối A O S Kế tiếp đọc R T I và xuất khối I R T Lại tiếp tục đọc và xuất các khối nh sau: Đọc N G A và xuất khối A G N Đọc N D M và xuất khối D M N Đọc E R G và xuất khối... tuần tự 33 Luận văn tốt nghiệp Một số ph ơng pháp sắp xếp và tìm kiếm ngoài Phơng pháp đơn giản nhất, đồng thời cũng kém hiệu quả nhất để lu giữ các mẫu tin của file là sắp xếp các mẫu tin của file vào một số khối cần thiết theo một trật tự tuỳ ý Các khối có thể liên kết với nhau bởi các con trỏ tạo thành một danh sách liên kết các khối Một cách khác, ta có thể sử dụng một bảng để lu địa chỉ của các... tổ chức tệp khác cho phép ta truy nhập vào một mẫu tin của nó mà chỉ cần đọc một phần nhỏ của tệp thôi Sau đây ta sẽ xét đến một số tổ chức này 3.2 File băm 35 Luận văn tốt nghiệp Một số ph ơng pháp sắp xếp và tìm kiếm ngoài T tởng của tổ chức file băm là nh sau: Ta chia tập hợp các mẫu tin của file thành k lớp và đánh số 0, 1, 2, , k - 1 Với mỗi lớp, tạo ra một danh sách liên kết các khối Các khối... và sắp xếp tập tin Quá trình thực hiện trên sẽ đợc cụ thể hơn nhờ ý tởng thuật toán sau: 1 Đọc mh phần tử đầu tiên từ f0 vào nửa trên của heap, lúc này ta không cần quan tâm đến thứ tự giữa các phần tử 2 Đọc mh phần tử khác và đặt vào nửa dới của heap, lần lợt đặt các phần tử vào đúng vị trí của nó (tạo heap) 30 Luận văn tốt nghiệp Một số ph ơng pháp sắp xếp và tìm kiếm ngoài 3 Khởi động l bằng m và. .. khối có tính chất là nếu trộn hai tệp có n khối sẽ đợc một tệp cũng có n khối Nh thế tổng số khối giảm đi một nửa sau mỗi bớc và số lần dịch 31 Luận văn tốt nghiệp Một số ph ơng pháp sắp xếp và tìm kiếm ngoài chuyển các phần tử trong trờng hợp xấu nhất là n[log2n], nhng trờng hợp trung bình còn ít hơn Tuy nhiên số phép so sánh lại nhiều hơn vì ngoài các so sánh để chọn phần tử còn phải so sánh các ... nghiệp Một số ph ơng pháp xếp tìm kiếm Lời nói đầu Trong thực tế, việc tổ chức xếp tìm kiếm quan trọng Trớc đây, đợc làm quen với số phơng pháp xếp tìm kiếm nhng với giả thiết liệu đa vào máy... 1) Sau tìm đợc cặp số file số, tiếp tục thực tìm kiếm khối có địa 1: Đọc lần lợt khoá khối có địa tìm đợc khoá 21 41 Luận văn tốt nghiệp Một số ph ơng pháp xếp tìm kiếm Nh vậy, việc tìm kiếm không... B7, B12 đợc xếp vào B3 số khối B8, B9 đợc xếp vào B13 Bây số khối B13 58 địa khối B13 cần đợc xếp vào khối B1 Nhng B1 đầy thêm vào B-cây khối B 14 Xếp số B2, B3 vào B1, số B13, B4 vào B14 Vì B1

Ngày đăng: 15/12/2015, 11:18

Từ khóa liên quan

Mục lục

  • Chương 1 mô hình của xử lý ngoài

  • 1.1. Tập tin

    • 1.2. Lưu trữ hai cấp

      • 1.6. Đánh giá các phép xử lý ngoài

      • Chương 2 Sắp xếp trên bộ nhớ ngoài

        • 2.1. Phương pháp trộn trực tiếp

        • Bảng 2: Phân bố các khối lên 5 băng

        • Dấu _ chỉ khoá được chọn đưa ra khối.

        • Chương 3 Tìm kiếm trên bộ nhớ ngoài

          • 3.4. Cây tìm kiếm ngoài

          • 3.4.2. B-Cây

          • Kết luận

          • Tài liệu tham khảo

Tài liệu cùng người dùng

Tài liệu liên quan