Tin tức thư viện

Chức năng Dừng xem quảng cáo trên violet.vn

12087057 Kính chào các thầy, cô! Hiện tại, kinh phí duy trì hệ thống dựa chủ yếu vào việc đặt quảng cáo trên hệ thống. Tuy nhiên, đôi khi có gây một số trở ngại đối với thầy, cô khi truy cập. Vì vậy, để thuận tiện trong việc sử dụng thư viện hệ thống đã cung cấp chức năng...
Xem tiếp

Hỗ trợ kĩ thuật

  • (024) 62 930 536
  • 091 912 4899
  • hotro@violet.vn

Liên hệ quảng cáo

  • (024) 66 745 632
  • 096 181 2005
  • contact@bachkim.vn

Sắp xếp chèn

Wait
  • Begin_button
  • Prev_button
  • Play_button
  • Stop_button
  • Next_button
  • End_button
  • 0 / 0
  • Loading_status
Nhấn vào đây để tải về
Báo tài liệu có sai sót
Nhắn tin cho tác giả
(Tài liệu chưa được thẩm định)
Nguồn: Wikipedia
Người gửi: Thpt Chuyên Vị Thanh
Ngày gửi: 12h:35' 09-12-2009
Dung lượng: 43.5 KB
Số lượt tải: 16
Số lượt thích: 0 người
Sắp xếp chèn
Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm
Sắp xếp chèn (insertion sort) là một thuật toán sắp xếp bắt chước cách sắp xếp quân bài của những người chơi bài. Muốn sắp một bộ bài theo trật tự người chơi bài rút lần lượt từ quân thứ 2, so với các quân đứng trước nó để chèn vào vị trí thích hợp.
Mục lục
[ẩn]
1 Mô tả
2 Ví dụ
3 Giả mã
4 Xem thêm
5 Liên kết

[sửa] Mô tả
Cơ sở lập luận của sắp xếp chèn có thể mô tả như sau: Xét danh sách con gồm k phần tử đầu a1,...,ak. Với k = 1, danh sách gồm một phần tử đã được sắp. Giả sử trong danh sách k-1 phần tử đầu a1,...,ak − 1 đã được sắp. Để sắp xếp phần tử ak = x ta tìm vị trí thích hợp của nó trong dãy a1,...,ak − 1. Vị trí thích hợp đó là đứng trước phần tử lớn hơn nó và sau phần tử nhỏ hơn hoặc bằng nó.
Các phần tử ≤x
Vị trí thích hợp
Các phần tử>x
Các phần tử chưa sắp

a1
...
ai − 1
x
ai + 1
...
ak − 1
ak + 1
...
an

[sửa] Ví dụ
Cho danh sách
1
3
7
-
6
4
2
5

Danh sách con gồm 3 phần tử bên trái 1,3,7 đã được sắp. Để tiếp tục sắp xếp phần tử thứ tư a4 = 6 vào danh sách con đó, ta tìm vị trí thích hợp của nó là sau 3 và trước 7.
1
3
6
7
-
4
2
5

Làm tiếp theo với a5 = 4 ta được
1
3
4
6
7
-
2
5

Làm tiếp theo với a6 = 2 ta được
1
2
3
4
6
7
-
5

Cuối cùng chèn a7 = 5
1
2
3
4
5
6
7
-

[sửa] Giả mã
Danh sách a bắt đầu từ chỉ số 1 tới length
Procedure Insert (array a, int k, Value) {
int i := k-1;
while (i > 0 and a[i] > value) {
a[i+1] := a[i];
i := i - 1;
}
a[i+1] := value;
}
Procedure InsertSort (array a, int length) {
int k := 2;
while (k <= length) {
insert(a, k, a[k]);
k := k + 1;
}
}

 
Gửi ý kiến