1. Trang chủ
  2. » Luận Văn - Báo Cáo

so sánh tốc độ các sort

4 243 0

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

THÔNG TIN TÀI LIỆU

Nội dung

Lớp IT003.I22.KHCL – học kỳ II năm học 2017-2018 BÁO CÁO KẾT QUẢ THỬ NGHIỆM Thuật toán QUICKSORT Thời gian thực hiện: 10/03 – 11/04/2018 Sinh viên thực hiện: Dương Phúc Huân.(A1) Nguyễn Tiến Công.(A2) Nội dung báo cáo: I Tóm tắt thuật tốn A Ý tưởng:  Giải thuật QuickSort xếp dãy a1, a2 , aN dựa việc phân hoạch dãy ban đầu thành phần : • Phần 1: Gồm phần tử có giá trị bé x • Phần 2: Gồm phần tử có giá trị x • Phần 3: Gồm phần tử có giá trị lớn x với x giá trị phần tử tùy ý dãy ban đầu  Sau thực phân hoạch, dãy ban đầu phân thành đoạn: • ak ≤ x , với k = j • ak = x , với k = j+1 i-1 • ak  x , với k = i N  Đoạn thứ có thứ tự  Nếu đoạn có phần tử : có thứ tự  dãy ban đầu  Đoạn thứ có thứ tự  Nếu đoạn có nhiều phần tử dãy ban đầu có thứ tự đoạn 1,  Để xếp đoạn 3, ta tiến hành việc phân hoạch dãy theo phương pháp phân hoạch dãy ban đầu vừa trình bày … Thuật toán:  Bước : Chọn tùy ý phần tử a[k] dãy giá trị mốc ( left≤ k ≤ right): x = a[k]; i = left; j = right  Bước : Phát hiệu chỉnh cặp phần tử a[i], a[j] nằm sai chỗ :  Bước 2a : Trong (a[i]x) j ;  Bước 2c : Nếu i< j  Bước : Nếu i < j: Swap(a[i],a[j]); Lặp lại Bước Ngược lại: Dừng Minh họa với ví dụ cụ thể: Cài đặt NNLT cụ thể: void QuickSort(long *&a, long left, long right) { long i, j, x; x = a[(left+right)/2]; i = left; j = right; { while(a[i] < x) i++; while(a[j] > x) j ; if(i

Ngày đăng: 16/05/2018, 19:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w