Sắp xếp chèn là gì? Giới thiệu giải thuật Insertion sort trong C/C++ giúp sắp xếp mảng theo thứ tự đơn giản, nhanh chóng. Xem thêm thuật toán Insertion sort có code mẫu
Insertion sort là gì? Thuật toán sắp xếp chèn Insertion sort trong C/C++
Insertion sort hay còn được gọi là thuật toán sắp xếp chèn với cách thức hoạt động có phần tương đồng với thuật toán sắp xếp nổi bọt.
Thuật toán sắp xếp chèn sẽ lần lượt chọn giá trị của các phần tử trong mảng (từ giá trị thứ 2 đến giá trị cuối cùng) và so sánh với với các giá trị phía trước vị trí của nó. Nếu tìm được vị trí phù hợp, phần tử ấy sẽ được chèn vào vị trí thích hợp giữa các giá trị trước nhưng vẫn đảm bảo mảng được sắp xếp theo thứ tự.
Ví dụ về thuật toán sắp xếp chèn Insertion Sort trong C/C++
Với thuật toán sắp xếp chèn, ta chia mảng thành các phần sau:
Thuật toán sắp xếp sẽ lần lượt so sánh từng phần tử a[i] trong mảng a' (mảng chưa sắp xếp) trong mảng đợi với các giá trị trong mảng a (mảng đã sắp xếp) theo thứ tự từ phải qua trái (từ a[i-1] đến a[0]). Gọi a[j] là phần tử trong mảng a và j = i - 1.
Nếu a[i] chưa thỏa điều kiện đúng theo thứ tự sắp xếp trong mảng a thì:
Nếu a[i] thỏa điều kiện đúng theo thứ tự sắp xếp trong mảng a:
Ý tưởng thuật toán sắp xếp chèn - Insertion Sort
Bước 1: Giả định a[0] là một mảng đã được sắp xếp theo thứ tự.
Bước 2: So sánh a[1] với a[0] và sắp xếp lại sao cho mảng đã sắp xếp gồm a[0] và a[1] được sắp thứ tự.
Bước 3: So sánh a[2] với a[0] và a[1], sau đó sắp xếp lại sao cho mảng đã sắp xếp gồm a[0], a[1], a[2] được sắp xếp thứ tự.
Bước i: So sánh a[i] với các giá trị trong mảng đã sắp xếp từ a[i-1] lùi xuống a[0], sau đó sắp xếp lại sao cho mảng đã sắp xếp từ a[0] đến a[ơi] được sắp xếp thứ tự. Thực hiện liên tục như vậy cho đến hết mảng.
Bước cuối: Sau khi sắp xếp theo thứ tự xong, ta xuất mảng.
Giải thuật sắp xếp chèn - Insertion Sort
Code: Thuật toán sắp xếp chèn insertion sort
Kết quả
Hy vọng bài viết này sẽ giúp bạn làm chủ được Insertion sort để ứng dụng vào công việc một cách hiệu quả nhất nhé. Chúc các bạn thực hiện thành công!
Nguồn tham khảo: Freetus.net
Trung tâm chuyên sửa chữa thay thế, bảo hành miễn phí, nhượng quyền thương hiệu trungtambaohanh.com + marketing.