You are on page 1of 3

Tìm kiếm nhị phân

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 .

Các bước thức hiện

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

Ưu:chạy nhanh 1 trong cac thuật toán

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ự .

Các bước thức hiện

– 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ự .

Ưu:chạy nhanh độ phức tạp0(n*logn), ổn định

Nhược:cần dung them bộ nhớ để lưu mảng A

Insertion soft (chèn vào giữa )

Ý 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 )

 Ưu:Code đơn giản, dễ hiểu Không tốn thêm bộ nhớ


 Nhược: Độ phức tạp O(N2)O(N2), không đủ nhanh với dữ liệu lớn.
Heap soft
Chia mả ng ban đầ u thà nh hai mả ng con : Mộ t mả ng bao gồ m các phầ n tử đã sắ p xếp và mộ t mả ng bao gồ m các phầ n tử cò n lại
chưa đượ c sắ p xếp . Ban đầ u , mả ng đã sắ p xếp là mả ng rỗ ng , mả ng chưa sắ p xếp chính là mả ng ban đầ u .
Tìm phầ n tử nhỏ nhấ t / lớ n nhấ t trong mả ng chưa sắ p xếp và đưa nó và o cuố i mả ng đã sắ p xếp ( tù y và o cá ch sắ p xếp là tă ng
dầ n hay giả m dầ n ) .
Ưu:cà i đặ t đơn giả n nếu đã có thư viện heap,chạ y nhanh )(N*logn)
Nhượ c: ko ổ n định
Kruskal
Sắp xếp các cạnh theo thứ tự tăng dần .
Lần lượt lấy các cạnh đặt vào cây và không tạo chu trình với các định trong T cho đến khi số đỉnh của T bằng
số đỉnh đồ thị .
Prim
• Lấy đỉnh bất kỳ u của đồ thị .
Đặt tất cả các cạnh kề của u vào E.
Chọn đỉnh kề v của u có trọng số nhỏ nhất trong E và không tạo chu trình trong T.
• Đặt v vào T.
• Đặt tiếp các cạnh kề của v vào E.
Lặp lại bước 2 cho đến khi số đỉnh của T là số đỉnh của đồ thị .
So sánh danh sách đặc và danh sách liên kết

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

So sánh Stack Queue

Stack Queue

Nguyên tắc làm Vào trước ra sau Vào trước ra trước


việc
Hoạt động
Push them phần tử vào đỉnh stack Enqueue them phần tử
được thực hiện
vào cuối hang đợi
Pop lấy ….
Dequeue lấy ptu ra khỏi
hang đợi

So sánh tìm kiếm tuyến tính , 2 phân

Tuyến tính Nhị phân

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)

You might also like