1. Trang chủ
  2. » Công Nghệ Thông Tin

Cấu trúc dữ liệu và giải thuật (phần 4) docx

10 358 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 218,61 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Radix sort Giới thiệu: – Radix sort – Sắp xếp theo cơ số dựa trên tính chất "số" của các khóa.. – Radix sort không chỉ so sánh giá trị của các khóa, mà so sánh các thành phần của khóa..

Trang 1

Shell sort

So sánh a[5] =11 > a[7] = 8  Swap (a[5],a[7])

3 d=1  So sánh a[0] = 3 > a[1] =1  Swap (a[0],a[1])

So sánh a[1] = 3 < a[2] =13  !Swap (a[1],a[2])

So sánh a[2] =13 > a[3] = 7  Swap (a[2],a[3])

So sánh a[3] =13 > a[4] =10  Swap (a[3],a[4])

So sánh a[4] =13 > a[5] = 8  Swap (a[4],a[5])

Trang 2

Shell sort

So sánh a[5] =13 < a[6] = 16  !Swap (a[5],a[6])

So sánh a[6] = 16 > a[7] =11  Swap (a[6],a[7])

 Đánh giá thuật toán:

- Tương tự Insertion nhưng Shell sort có số lần so

sánh giảm hơn nhiều

- O(n2)

 Bài tập: Trình bày kết quả của từng bước Shell sort

với d = 5,2,1 với dãy [3,5,2,9,8,1,6,4,7] Bao nhiêu phép so sánh được sử dụng

Trang 3

RADIX SORT

Trang 4

Radix sort

 Giới thiệu:

– Radix sort – Sắp xếp theo cơ số dựa trên tính chất

"số" của các khóa

– Radix sort không chỉ so sánh giá trị của các khóa,

mà so sánh các thành phần của khóa Giả sử các khóa là các số biểu diễn theo hệ ghi số cơ số M Khi đó sắp xếp theo cơ số sẽ so sánh từng ký số của nó

Trang 5

Radix sort

 Thuật toán:

– Xem các phần tử trong mảng gồm các lớp có độ

ưu tiên khác nhau VD: các số tự nhiên gồm các lớp: đơn vị, chục, trăm, ngàn,

– Duyệt các phần tử từ trên xuống dưới

– Bước 1: sắp xếp dãy các phần tử ở lớp có độ ưu

tiên thấp nhất (VD: các chữ số hàng đơn vị) Số

nào có hàng đơn vị thấp hơn thì ta đưa lên trên

– Sau bước 11 dãy sắp xếp mới Tương tự với các lớp kế tiếp (chữ số thuộc hàng chục, hàng trăm,…) cuối cùng sẽ có dãy đã sắp xếp

Trang 6

Radix sort

Ví dụ: Cho dãy [310, 213, 023, 130, 013, 301,

222, 032, 201, 111, 323, 002, 330, 102, 231, 120]

 310, 130, 330, 120, 301, 201, 111, 231, 222, 032,

002, 102, 213, 023, 013, 323

Trang 7

Radix sort

 301, 201, 002, 102, 310, 111, 213, 013, 120, 222,

023, 323, 130, 330, 231,032

Trang 8

Radix sort

Trang 9

Radix sort

hàng đơn vị

SX theo hàng chục

SX theo hàng trăm

SX theo hàng nghìn

Trang 10

Radix sort

 Đánh giá thuật toán:

- Với một dãy n số, mỗi số có tối đa m chữ số, thuật toán thực hiện m lần các thao tác phân Bucket và ghép Bucket

- Trong thao tác phân Bucket, mỗi phần tử chỉ được xét đúng một lần, khi ghép cũng vậy

- Như vậy, chi phí cho việc thực hiện thuật toán hiển nhiên là O(2m*n) = O(n)

Ngày đăng: 09/07/2014, 17:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w