SlideShare ist ein Scribd-Unternehmen logo
1 von 62
TRƯỜNG ĐẠI HỌC DÂN LẬP KỸ THUẬT CÔNG NGHỆ ------  ------ GV:  ThS. NGUYỄN HÀ GIANG CẤU TRÚC DỮ LIỆU TP. HCM – 1/2008 TÌM KIẾM & SẮP XẾP CHƯƠNG 2
Nội dung trình bày ,[object Object],[object Object]
2.1 Tìm kiếm ,[object Object],[object Object],[object Object],[object Object]
2.1 Tìm kiếm (2) ,[object Object],[object Object],[object Object]
2.1 Tìm kiếm (3) ,[object Object],[object Object],[object Object],Tìm kiếm Tìm kiếm tuyến tính Tìm kiếm nhị phân Tập dữ liệu đã  được sắp xếp Tập dữ liệu  bất kỳ
2.1.1  Tìm kiếm tuyến tính (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.1.1  Tìm kiếm tuyến tính (5) 12 2 5 8 1 6 4 Tìm được ,[object Object],[object Object],Minh họa tìm kiếm tuyến tính Ví dụ X = 8
2.1.1  Tìm kiếm tuyến tính (6) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Thuật toán tìm kiếm tuyến tính
2.1.1  Tìm kiếm tuyến tính (7) int  Search(int a[], int n, int  key ) { int i =0; a[n] =key ; // thêm phần tử thứ n+1 while ( key != a[i] ) i++; if ( i == n ) return -1;  // tìm hết mảng nhưng không có x else return  i ; // tìm thấy x tại vị trí i }  Thuật toán tìm kiếm tuyến tính cải tiến
5.1.1  Tìm kiếm tuyến tính (8) ,[object Object],[object Object],Nhận xét
5.1.2 Tìm kiếm nhị phân ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],KN
2.1.2 Tìm kiếm nhị phân (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Các bước tiến hành
2.1.2 Tìm kiếm nhị phân (3) ,[object Object],[object Object],1 2 4 5 6 8 12 15 Left = 1 X = 8 Right = 8 Mid = 4 1 2 4 5 6 8 12 15 Left = 5 X = 8 Right = 8 Mid = 6 Đoạn tìm kiếm Đoạn tìm kiếm Ví dụ =
2.1.2 Tìm kiếm nhị phân (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Thuật toán tìm kiếm NP BinarySearch
2.1.2 Tìm kiếm nhị phân (5) ,[object Object],[object Object],[object Object],Nhận xét
2.2 Sắp xếp ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],KN
2.2 Sắp xếp ,[object Object],[object Object],[object Object],[object Object]
2.2 Sắp xếp (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],1 2 3 Các phương pháp sắp xếp
2.2 Sắp xếp (3) ,[object Object],[object Object],[object Object],[object Object],Mô tả bài toán
2.2.1 Selection Sort ,[object Object],[object Object],[object Object],[object Object],Ý tưởng chính
2.2.1 Selection Sort (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Các bước thực hiện VD
2.2.1 Selection Sort (3) 12 2 8 5 1 6 4 15 i=1 min=5 1 2 8 5 12 6 4 15 i=2 1 2 8 5 12 6 4 15 i=3 min=7
2.2.1 Selection Sort (4) 1 2 4 5 12 6 8 15 i=4 1 2 4 5 12 6 8 15 i=5 min=6 1 2 4 5 6 8 12 15 i=7 1 2 4 5 6 8 12 15
2.2.1 Selection Sort (5) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Cài đặt SelectionSort
2.2.2 Bubble Sort ,[object Object],[object Object],[object Object],Ý tưởng chính 1 2 3
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],2.2.2 Bubble Sort (2) Các bước tiến hành VD
2.2.2 Bubble Sort (3) 12 i=1 2 8 5 1 6 4 15 j=7 12 i=1 2 8 5 1 4 6 15 j=5 12 i=1 2 8 1 5 4 6 15 j=4
2.2.2 Bubble Sort (4) 12 i=1 2 1 8 5 4 6 15 j=3 12 i=1 1 2 8 5 4 6 15 j=2 1 i=2 12 2 8 5 4 6 15 j=6
2.2.2 Bubble Sort (5) 1 i=2 12 2 8 4 5 6 15 j=5 1 i=2 12 2 4 8 5 6 15 j=3 1 i=3 2 12 4 8 5 6 15 j=6
2.2.2 Bubble Sort (6) 1 i=3 2 12 4 5 8 6 15 j=4 1 i=4 2 4 12 5 8 6 15 j=7 1 i=4 2 4 12 5 6 8 15 j=5
2.2.2 Bubble Sort (7) 1 i=5 2 4 5 12 6 8 15 j=6 1 i=6 2 4 5 6 12 8 15 j=7 1 i=7 2 4 5 6 8 12 15 1 2 4 5 6 8 12 15
2.2.2 Bubble Sort (8) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Cài đặt BubbleSort
2.2.3 Insertion Sort ,[object Object],[object Object],[object Object],[object Object],Ý tưởng chính
2.2.3 Insertion Sort (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Các bước tiến hành
2.2.3 Insertion Sort 12 2 8 5 1 6 4 15 i=2 2 12 8 5 1 6 4 15 i=3 2 8 12 5 1 6 4 15 i=4
2.2.3 Insertion Sort 2 5 8 12 1 6 4 15 i=4 1 2 4 5 6 8 12 15 Tương tự
2.2.3 Insertion Sort (6) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Cài đặt InsertionSort
[object Object],[object Object],[object Object],2.2.4 Interchange Sort Ý tưởng
2.2.4 Interchange Sort ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Các bước tiến hành
2.2.4 Interchange Sort 10 3 7 6 2 5 4 16 i j Tương tự
[object Object],[object Object],[object Object],2.2.5 PP ShellSort Ý tưởng chính
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],2.2.5 PP ShellSort
[object Object],[object Object],2.2.5 PP ShellSort Dãy chính 10 3 7 6 2 5 4 16 Dãy con 1 10 6 4 Dãy con 2 3 2 16 Dãy con 3 7 5
[object Object],[object Object],[object Object],[object Object],2.2.5 PP ShellSort
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],2.2.5 PP ShellSort Các bước tiến hành
[object Object],[object Object],2.2.5 PP ShellSort 10 3 7 6 2 5 4 16 Dãy 1 Dãy 2 Dãy 3 Dãy 4 Dãy 5 h 1  = 5
2.2.5 PP ShellSort 5 3 7 6 2 10 4 16 Dãy 1 Dãy 2 Dãy 3 h 2  = 3 5 3 7 6 2 10 4 16 4 2 7 5 3 10 6 16
h 3  = 1 Dãy 1 Sắp xếp chèn 2 3 4 5 6 7 10 16 2.2.5 PP ShellSort 4 2 7 5 3 10 6 16
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],2.2.5 PP ShellSort
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],2.2.6 PP QuickSort
[object Object],[object Object],[object Object],[object Object],2.2.6 PP QuickSort a[k] < x a[k] = x a[k] > x
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],2.2.6 PP QuickSort
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],2.2.6 PP QuickSort
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],2.2.6 PP QuickSort
[object Object],[object Object],[object Object],2.2.7 PP RadixSort
2.2.7 PP RadixSort 493  812  715  710  195  437  582  340  385   Phân lô hàng đv 710  340  812  582  493  715  195  385  437   Sau khi phân lô  theo hàng đơn vị Số hàng đv Dãy con 0 710  340 1 2 812  582 3 493 4 5 715  195  385 6 7 437 8 9
2.2.7 PP RadixSort 7 1 0  3 4 0  8 1 2  5 8 2  4 9 3  7 1 5  1 9 5  3 8 5  4 3 7   710  812  715  437  340  582  385  493  195   Phân lô hàng chục Sau khi phân lô  theo hàng ch ục Số hàng chục Dãy con 0 1 710  812  715 2 3 437 4 340 5 6 7 8 582  385 9 493  195
2.2.7 PP RadixSort 710  812  715  437  340  582  385  493  195   195  340  385  437  493  582  710  715  812   Phân lô hàng trăm Sau khi phân lô  theo hàng tr ăm Số hàng trăm Dãy con 0 1 195 2 3 340  385 4 437  493 5 582 6 7 710  715 8 812 9
[object Object],[object Object],[object Object],[object Object],[object Object],2.2.7 PP RadixSort
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],2.2.7 PP RadixSort
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],2.2.7 PP RadixSort
Tài liệu tham khảo ,[object Object],[object Object],[object Object],[object Object],

Weitere ähnliche Inhalte

Was ist angesagt?

Tìm kiếm và sắp nội
Tìm kiếm và sắp nộiTìm kiếm và sắp nội
Tìm kiếm và sắp nộikikihoho
 
Bài tập CTDL và GT 1
Bài tập CTDL và GT 1Bài tập CTDL và GT 1
Bài tập CTDL và GT 1Hồ Lợi
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2Nguyễn Công Hoàng
 
Thuat toan sap xep trao doi
Thuat toan sap xep trao doiThuat toan sap xep trao doi
Thuat toan sap xep trao doilantbinh
 
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTBài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTMasterCode.vn
 
Bài tập CTDL và GT 7
Bài tập CTDL và GT 7Bài tập CTDL và GT 7
Bài tập CTDL và GT 7Hồ Lợi
 
Chuong 2 Tim Kiem N Sap Xep
Chuong 2   Tim Kiem N Sap XepChuong 2   Tim Kiem N Sap Xep
Chuong 2 Tim Kiem N Sap Xepquang
 
Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Hồ Lợi
 
Bai3 timkiemsapxep
Bai3 timkiemsapxepBai3 timkiemsapxep
Bai3 timkiemsapxepnhà tôi
 
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPTBài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPTMasterCode.vn
 
Bài tập CTDL và GT 9
Bài tập CTDL và GT 9Bài tập CTDL và GT 9
Bài tập CTDL và GT 9Hồ Lợi
 
Baigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật ToánBaigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật ToánVan Vo
 
Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Do Ngoc Tuan
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4Nguyễn Công Hoàng
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Nguyễn Công Hoàng
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 6
Giáo trình Phân tích và thiết kế giải thuật - CHAP 6Giáo trình Phân tích và thiết kế giải thuật - CHAP 6
Giáo trình Phân tích và thiết kế giải thuật - CHAP 6Nguyễn Công Hoàng
 
Bai giang thuat toan tim kiem va sap xep
Bai giang thuat toan tim kiem va sap xepBai giang thuat toan tim kiem va sap xep
Bai giang thuat toan tim kiem va sap xeptran0phu
 

Was ist angesagt? (19)

Tìm kiếm và sắp nội
Tìm kiếm và sắp nộiTìm kiếm và sắp nội
Tìm kiếm và sắp nội
 
Bài tập CTDL và GT 1
Bài tập CTDL và GT 1Bài tập CTDL và GT 1
Bài tập CTDL và GT 1
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
 
Thuat toan sap xep trao doi
Thuat toan sap xep trao doiThuat toan sap xep trao doi
Thuat toan sap xep trao doi
 
Timkiem&sapxep
Timkiem&sapxepTimkiem&sapxep
Timkiem&sapxep
 
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTBài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
 
Bài tập CTDL và GT 7
Bài tập CTDL và GT 7Bài tập CTDL và GT 7
Bài tập CTDL và GT 7
 
Chuong 2 Tim Kiem N Sap Xep
Chuong 2   Tim Kiem N Sap XepChuong 2   Tim Kiem N Sap Xep
Chuong 2 Tim Kiem N Sap Xep
 
Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Bài tập CTDL và GT 12
Bài tập CTDL và GT 12
 
Bai3 timkiemsapxep
Bai3 timkiemsapxepBai3 timkiemsapxep
Bai3 timkiemsapxep
 
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPTBài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
 
Bài tập CTDL và GT 9
Bài tập CTDL và GT 9Bài tập CTDL và GT 9
Bài tập CTDL và GT 9
 
Baigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật ToánBaigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật Toán
 
Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 6
Giáo trình Phân tích và thiết kế giải thuật - CHAP 6Giáo trình Phân tích và thiết kế giải thuật - CHAP 6
Giáo trình Phân tích và thiết kế giải thuật - CHAP 6
 
Bai 4
Bai 4Bai 4
Bai 4
 
Bai giang thuat toan tim kiem va sap xep
Bai giang thuat toan tim kiem va sap xepBai giang thuat toan tim kiem va sap xep
Bai giang thuat toan tim kiem va sap xep
 

Andere mochten auch

Phần 2: Giới thiệu ngôn ngữ lập trình C
Phần 2: Giới thiệu ngôn ngữ lập trình CPhần 2: Giới thiệu ngôn ngữ lập trình C
Phần 2: Giới thiệu ngôn ngữ lập trình CHuy Rùa
 
C2 tim kiem
C2 tim kiemC2 tim kiem
C2 tim kiemhiep0109
 
Cấu trúc dữ liệu kiểu danh sách liên kết
Cấu trúc dữ liệu kiểu danh sách liên kếtCấu trúc dữ liệu kiểu danh sách liên kết
Cấu trúc dữ liệu kiểu danh sách liên kếthotro
 
Hsbd taint
Hsbd taintHsbd taint
Hsbd taintvb2tin09
 
Phần 1: Các khái niệm cơ bản về lập trình
Phần 1: Các khái niệm cơ bản về lập trìnhPhần 1: Các khái niệm cơ bản về lập trình
Phần 1: Các khái niệm cơ bản về lập trìnhHuy Rùa
 
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPTBài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPTMasterCode.vn
 

Andere mochten auch (9)

Ltc 01
Ltc 01Ltc 01
Ltc 01
 
Phần 2: Giới thiệu ngôn ngữ lập trình C
Phần 2: Giới thiệu ngôn ngữ lập trình CPhần 2: Giới thiệu ngôn ngữ lập trình C
Phần 2: Giới thiệu ngôn ngữ lập trình C
 
Chg2 danh sach
Chg2 danh sachChg2 danh sach
Chg2 danh sach
 
C2 tim kiem
C2 tim kiemC2 tim kiem
C2 tim kiem
 
Cấu trúc dữ liệu kiểu danh sách liên kết
Cấu trúc dữ liệu kiểu danh sách liên kếtCấu trúc dữ liệu kiểu danh sách liên kết
Cấu trúc dữ liệu kiểu danh sách liên kết
 
Uml diagram type
Uml diagram typeUml diagram type
Uml diagram type
 
Hsbd taint
Hsbd taintHsbd taint
Hsbd taint
 
Phần 1: Các khái niệm cơ bản về lập trình
Phần 1: Các khái niệm cơ bản về lập trìnhPhần 1: Các khái niệm cơ bản về lập trình
Phần 1: Các khái niệm cơ bản về lập trình
 
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPTBài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
 

Ähnlich wie Chuong 2 Tim Kiem N Sap Xep

C2 sap xep
C2 sap xepC2 sap xep
C2 sap xephiep0109
 
Bai3 timkiem sapxep
Bai3 timkiem sapxepBai3 timkiem sapxep
Bai3 timkiem sapxepHồ Lợi
 
Ctdl C08
Ctdl C08Ctdl C08
Ctdl C08giang
 
Tai lieu boi duong doi tuyen quoc gia 2013 3
Tai lieu boi duong doi tuyen quoc gia 2013 3Tai lieu boi duong doi tuyen quoc gia 2013 3
Tai lieu boi duong doi tuyen quoc gia 2013 3nataliej4
 
Ctdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xepCtdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xepNguyễn Ngọc Hà
 
Chap2 new (tran dai's conflicted copy 2013 04-02)
Chap2 new (tran dai's conflicted copy 2013 04-02)Chap2 new (tran dai's conflicted copy 2013 04-02)
Chap2 new (tran dai's conflicted copy 2013 04-02)Loc Tran
 
Skkn các phương pháp phân tích đa thức thành nhân tử
Skkn các phương pháp phân tích đa thức thành nhân tửSkkn các phương pháp phân tích đa thức thành nhân tử
Skkn các phương pháp phân tích đa thức thành nhân tửnataliej4
 
304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docx304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docxNguynAnThch
 
Bai7 timkiemnhiphan
Bai7 timkiemnhiphanBai7 timkiemnhiphan
Bai7 timkiemnhiphanHồ Lợi
 

Ähnlich wie Chuong 2 Tim Kiem N Sap Xep (20)

C2 sap xep
C2 sap xepC2 sap xep
C2 sap xep
 
Bai3 timkiem sapxep
Bai3 timkiem sapxepBai3 timkiem sapxep
Bai3 timkiem sapxep
 
SLIDE CAU TRUC DL_GT.pptx
SLIDE CAU TRUC DL_GT.pptxSLIDE CAU TRUC DL_GT.pptx
SLIDE CAU TRUC DL_GT.pptx
 
Ctdl C08
Ctdl C08Ctdl C08
Ctdl C08
 
Tai lieu boi duong doi tuyen quoc gia 2013 3
Tai lieu boi duong doi tuyen quoc gia 2013 3Tai lieu boi duong doi tuyen quoc gia 2013 3
Tai lieu boi duong doi tuyen quoc gia 2013 3
 
Ctdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xepCtdl lab07-cac thuat-toan_sap_xep
Ctdl lab07-cac thuat-toan_sap_xep
 
CHƯƠNG 4.pdf
CHƯƠNG 4.pdfCHƯƠNG 4.pdf
CHƯƠNG 4.pdf
 
Chap2 new
Chap2 newChap2 new
Chap2 new
 
Chap2 new (tran dai's conflicted copy 2013 04-02)
Chap2 new (tran dai's conflicted copy 2013 04-02)Chap2 new (tran dai's conflicted copy 2013 04-02)
Chap2 new (tran dai's conflicted copy 2013 04-02)
 
Skkn các phương pháp phân tích đa thức thành nhân tử
Skkn các phương pháp phân tích đa thức thành nhân tửSkkn các phương pháp phân tích đa thức thành nhân tử
Skkn các phương pháp phân tích đa thức thành nhân tử
 
Olympiad help
Olympiad helpOlympiad help
Olympiad help
 
304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docx304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docx
 
Baitap ktlt
Baitap ktltBaitap ktlt
Baitap ktlt
 
Gt12cb 73
Gt12cb 73Gt12cb 73
Gt12cb 73
 
Bai7 timkiemnhiphan
Bai7 timkiemnhiphanBai7 timkiemnhiphan
Bai7 timkiemnhiphan
 
Tablists help
Tablists helpTablists help
Tablists help
 
C2 mot-so-cau-truc-du-lieu-co-ban
C2 mot-so-cau-truc-du-lieu-co-banC2 mot-so-cau-truc-du-lieu-co-ban
C2 mot-so-cau-truc-du-lieu-co-ban
 
Baitap ktlt
Baitap ktltBaitap ktlt
Baitap ktlt
 
Thuat Toan
Thuat ToanThuat Toan
Thuat Toan
 
Thuat Toan 2
Thuat Toan 2Thuat Toan 2
Thuat Toan 2
 

Chuong 2 Tim Kiem N Sap Xep

  • 1. TRƯỜNG ĐẠI HỌC DÂN LẬP KỸ THUẬT CÔNG NGHỆ ------  ------ GV: ThS. NGUYỄN HÀ GIANG CẤU TRÚC DỮ LIỆU TP. HCM – 1/2008 TÌM KIẾM & SẮP XẾP CHƯƠNG 2
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. 2.1.1 Tìm kiếm tuyến tính (7) int Search(int a[], int n, int key ) { int i =0; a[n] =key ; // thêm phần tử thứ n+1 while ( key != a[i] ) i++; if ( i == n ) return -1; // tìm hết mảng nhưng không có x else return i ; // tìm thấy x tại vị trí i } Thuật toán tìm kiếm tuyến tính cải tiến
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22. 2.2.1 Selection Sort (3) 12 2 8 5 1 6 4 15 i=1 min=5 1 2 8 5 12 6 4 15 i=2 1 2 8 5 12 6 4 15 i=3 min=7
  • 23. 2.2.1 Selection Sort (4) 1 2 4 5 12 6 8 15 i=4 1 2 4 5 12 6 8 15 i=5 min=6 1 2 4 5 6 8 12 15 i=7 1 2 4 5 6 8 12 15
  • 24.
  • 25.
  • 26.
  • 27. 2.2.2 Bubble Sort (3) 12 i=1 2 8 5 1 6 4 15 j=7 12 i=1 2 8 5 1 4 6 15 j=5 12 i=1 2 8 1 5 4 6 15 j=4
  • 28. 2.2.2 Bubble Sort (4) 12 i=1 2 1 8 5 4 6 15 j=3 12 i=1 1 2 8 5 4 6 15 j=2 1 i=2 12 2 8 5 4 6 15 j=6
  • 29. 2.2.2 Bubble Sort (5) 1 i=2 12 2 8 4 5 6 15 j=5 1 i=2 12 2 4 8 5 6 15 j=3 1 i=3 2 12 4 8 5 6 15 j=6
  • 30. 2.2.2 Bubble Sort (6) 1 i=3 2 12 4 5 8 6 15 j=4 1 i=4 2 4 12 5 8 6 15 j=7 1 i=4 2 4 12 5 6 8 15 j=5
  • 31. 2.2.2 Bubble Sort (7) 1 i=5 2 4 5 12 6 8 15 j=6 1 i=6 2 4 5 6 12 8 15 j=7 1 i=7 2 4 5 6 8 12 15 1 2 4 5 6 8 12 15
  • 32.
  • 33.
  • 34.
  • 35. 2.2.3 Insertion Sort 12 2 8 5 1 6 4 15 i=2 2 12 8 5 1 6 4 15 i=3 2 8 12 5 1 6 4 15 i=4
  • 36. 2.2.3 Insertion Sort 2 5 8 12 1 6 4 15 i=4 1 2 4 5 6 8 12 15 Tương tự
  • 37.
  • 38.
  • 39.
  • 40. 2.2.4 Interchange Sort 10 3 7 6 2 5 4 16 i j Tương tự
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47. 2.2.5 PP ShellSort 5 3 7 6 2 10 4 16 Dãy 1 Dãy 2 Dãy 3 h 2 = 3 5 3 7 6 2 10 4 16 4 2 7 5 3 10 6 16
  • 48. h 3 = 1 Dãy 1 Sắp xếp chèn 2 3 4 5 6 7 10 16 2.2.5 PP ShellSort 4 2 7 5 3 10 6 16
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56. 2.2.7 PP RadixSort 493 812 715 710 195 437 582 340 385 Phân lô hàng đv 710 340 812 582 493 715 195 385 437 Sau khi phân lô theo hàng đơn vị Số hàng đv Dãy con 0 710 340 1 2 812 582 3 493 4 5 715 195 385 6 7 437 8 9
  • 57. 2.2.7 PP RadixSort 7 1 0 3 4 0 8 1 2 5 8 2 4 9 3 7 1 5 1 9 5 3 8 5 4 3 7 710 812 715 437 340 582 385 493 195 Phân lô hàng chục Sau khi phân lô theo hàng ch ục Số hàng chục Dãy con 0 1 710 812 715 2 3 437 4 340 5 6 7 8 582 385 9 493 195
  • 58. 2.2.7 PP RadixSort 710 812 715 437 340 582 385 493 195 195 340 385 437 493 582 710 715 812 Phân lô hàng trăm Sau khi phân lô theo hàng tr ăm Số hàng trăm Dãy con 0 1 195 2 3 340 385 4 437 493 5 582 6 7 710 715 8 812 9
  • 59.
  • 60.
  • 61.
  • 62.

Hinweis der Redaktion

  1. Do các hệ thống thông tin lưu trữ một khối lượng dữ liệu lớn, nên thuật toán tìm kiếm tốt sẽ có ý nghĩa rất lớn . Nếu dữ liệu trong hệ thống được tổ chức theo một trật tự nào đó thì việc tìm kiếm sẽ tiến hành nhanh chóng và hiệu quả hơn . VD: sách được xếp theo chủ đề, danh sách người được sắp theo alphabet…
  2. Không phải toàn bộ các trường đều tham gia quá trình sắp xếp mà chỉ có một trường nào đó (hoặc một vài trường) được quan tâm
  3. Nhận xét: Không nhận diện được tình trạng dãy đã có thứ tự hay có thứ tự từng phần. Các phần tử nhỏ đưa về vị trí đúng rất nhanh, trong khi các phần tử lớn lại đưa về vị trí đúng rất chậm.
  4. Những dãy này được coi là những dãy con xếp theo độ dài bước h. Tư tưởng chính của thuật toán ShellSort là: với mỗi bước h, áp dụng thuật toán sắp xếp kiểu chèn từng dãy con độc lập để làm mịn dần các phần tử trong dãy chính. Tiếp tục làm tương tự đối với bước h div 2... cho đến khi h = 1 thì ta được dãy phần tử được sắp. Xét trong ví dụ trên, nếu chúng ta dùng phương pháp chèn thì với phần tử a[5] = 2 là phần tử nhỏ nhất trong dãy, do đó nó phải chèn vào vị trí thứ 1, tức là phải chèn trước 4 phần tử trước nó. Nhưng nếu chúng ta xem 2 là phần tử của dãy 2 thì ta chỉ cần chèn trước một phần tử là 3. Đây chính là nguyên nhân thuật toán ShellSort thực hiện hiệu quả hơn sắp xếp chèn. Khi đó khóa nhỏ nhanh chóng đưa về gần vị trí đúng của nó.
  5. Ta có nhận xét khi đó dãy con thứ 2 đã có thứ tự, nếu dãy con 1 và dãy con 3 có một phần tử thì chúng cũng đã có thứ tự, khi đó dãy ban đầu đã được sắp. Ngược lại, nếu dãy con 1 và 3 có nhiều hơn một phần tử thì dãy ban đầu có thứ tự khi dãy con 1 và 3 được sắp. Để sắp xếp dãy con 1 và 3, ta lần lượt tiến hành việc phân hoạch từng dãy con theo cùng phương pháp vừa trình bày.
  6. Lưu ý những phần tử này được đưa vào dãy con theo thứ tự tìm thấy, do đó chúng ta có thể thấy là các dãy con chưa có thứ tự