30/09/2018, 22:12
Thuật toán insertion sort
đây là thuật toán insertion sort mình thấy trên mạng
ai giải thích cho mình vs( a[], n, j là gì…) mình ms học nên k hiểu
void InsertionSort(int a[], int n)
{
for (int i = 1; i < n; i++)
{
int x = a[i];
int j = i;
while (j > 0 && a[j - 1] > x)
{
a[j] = a[j - 1];
j–;
}
a[j] = x;
}
}
Bài liên quan
đây là link mình đọc
STDIO
Insertion Sort :: Bài viết :: STDIO
Trong bài viết này, tôi sẽ tiếp tục giới thiệu và hiện thực thuật toán sắp xếp khác là Insertion Sort - sắp xếp chèn. Trong phạm vi bài viết, tôi chỉ hiện thực việc sắp xếp tăng dần, bạn có thể làm tương tự cho việc sắp xếp giảm dần và tôi sử dụng...
Sắp xếp chèn (insertion sort) là một thuật toán sắp xếp
vi.wikipedia.org
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.
Sắp xếp chèn
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. 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 a 1 , . . . , a ...
(a[],n) là đối số của hàm, dùng để trao đổi dữ liệu với hàm khác khi có lời gọi hàm.
j đơn giản là biến cục bộ kiểu int của hàm thôi.
Đơn giản vầy thôi
Bạn có một mảng chứa hầm bà lằng.
Bạn lấy [T] là một biến chứa thằng cuối cùng của phần mảng đã sắp xếp (bắt đầu sẽ là thằng unsortedArray[0]) và một biến /P/ làm vị trí (ngay sau thằng [T])
Sau đó bạn xét: Nếu thằng ở /P/ mà nhỏ hơn [T] thì bạn tạo một khoảng nhỏ để nhét thằng [P] vào sau [T]
Như vậy th.
Trong đoạn
Có gì chưa hiểu cứ reply
đoạn này là sao b
mình vẫn chưa hiểu :’(
là vầy này bạn:
và /P/ - vị_trí ( [ T ] ) -> 1 vì P sẽ luôn đi trước T
tks b. mình hiểu r