Professional Documents
Culture Documents
LÍ THUYẾT CTDLVGT
LÍ THUYẾT CTDLVGT
Tìm kiếm nhị phân chỉ thực hiện trên danh sách có thứ tự ( ở đây trình bày theo thứ tự tăng ) .Ý tưởng : với dãy tăng a , az , ... , a ,
và giá trị cần tìm x , lấy x so sánh a [ n / 2 ]
– Nếu x = a [ n / 2 ] thì n / 2 là vị trí cần tìm .– Nếu x < a [ n / 2 ] thì x chỉ có thể xuất hiện trong đoạn từ 0 đến n / 2 -1 .
− Nếu x > a [ n / 2 ] thì x chỉ có thể xuất hiện trong đoạn từ n / 2 + 1 đến n - 1 .
Selection soft
Ý tưởng : đưa phần tử nhỏ nhất về vị trí đầu dãy , đưa phần thử nhỏ thứ hai về vị trí thứ hai trong dãy , v.v. Quá trình lặp lại cho
đến khi danh sách được sắp xếp .
Quick soft
Ý tưởng : chọn giá trị x = a [ i ] làm chốt ( pivot ) ,phân hoạch dãy ban đầu thành hai đoạn .– Bên trái là những giá trị không lớn hơn
x .– Bên phải là những giá trị không nhỏ hơn x .
Quá trình phân hoạch lặp lại trên hai đoạn con này cho đến khi các đoạn con chỉ còn 1 phần tử thì ta thu được dãy được sắp xếp
Nhược: tùy thuộc vào cách chia hai thành phần, nếu chia k tốt độ phức tạp xấu nhất 0(n2), chia ngẫu nhiên 0(n*logn)
Ko ổn định.
Merge soft
Ý tưởng : trộn hai dãy con có thứ tự thành một dãy cũng có thứ tự .
– Xem mỗi phần tử dãy ban đầu là một dãy con ( dãy 1 phần tử hiển nhiên là dãy có thứ tự ) .– Trộn hai dãy con kế tiếp nhau
thành một dãy có thứ tự .– Lặp lại cho đến khi được dãy có thứ tự .
Ý tưởng : chèn một phần tử vào một đoạn đã sắp xếp sao cho vẫn đảm bảo đúng thứ tự đoạn con đó .
Giả sử đoạ n a [ o ] trong danh sách đã đượ c sắ p xếp . Bắ t đầ u từ phầ n tử thứ i = 1 , tứ c là ai . Tìm cách chèn
phầ n tử aị vào vị trí thích hợ p củ a đoạ n đã đượ c sắ p xếp để có dãy mớ i ao , ... , aị trở nên có thứ tự . Vị trí
này chính là vị trí giữ a hai phầ n tử ak - 1 và ak thỏ a ak - 1 < dị < ak ( 0 < = k < = i ) .
ưu: Nếu danh sách đã gần đúng thứ tự, Insertion Sort sẽ chạy rất nhanh. Ví dụ bạn
cần sắp xếp Highscore trong game.
Nhược:ĐỘ pt o(n2), ko đủ nhanh vs dữ liệu lớn
Interchange Soft
Ý tưở ng : xuấ t phá t phầ n tử đầ u dã y , tìm các phầ n tử “ nghịch thế ” vớ i phầ n tử nà y và hoá n vị chú ng , lặ p lại vớ i cá c phầ n tử
tiếp theo trong dã y .
Buble soft
Ý tưở ng : duyệt từ đầ u dã y đổ i chỗ 2 phầ n tử kề nhau sai trậ t tự , quá trình lặ p lạ i n − 1 lầ n sẽ đượ c dã y có thứ tự .
Độ phứ c tạ p thuậ t toá n O ( n2 )
Ds đặc Ds lk
Kích thước cô định, Kích thước rời rạc, phụ thuộc bộ nhớ khả dụng ram
lưu trữ liên tiếp, Được lưu trữ ngẫu nhiên
truy cập phần tử trực tiếp hoặc Truy cập phân tử tuần tự
ngẫu nhiên
Tìm kiếm tuyến tính.\ Chèn , xóa, sử dụng bộ nhớ hiệu quả hơn tiu nhin tìm kiêm chậm
tìm kiếm nhị phân hoặc tuyến tính
Stack Queue
Làm việc trên danh sách bất kì Chỉ làm việc trên danh sách có thự tự
Duyệt từ đầu đên cuối Chia đôi ra cho đến khi tìm thấy hoặc
đoạn con chỉ còn một phần tử
*Tốt nhất:phần tử cần tìm là phần tử
đầu tiên *Tốt nhất:phần tử cần tìm chính giữa
danh sách
*xấu nhất: ko tồn tại phần tử trong danh
sách. *xấu 1: TT
Độ pt Trung bình: 0(n) Độ phức tạp trung bình0(logn)