Ngôn ngữ lập trình c
Ngôn ngữ lập trình c
Thuật giải nhập và sắp xếp dữ liệu cho mảng
Thuật giải nhập và sắp xếp dữ liệu cho mảng
Sau đây là bài toán ví dụ:
Cho mảng A.bạn hãy nhập và sắp xếp dữ liệu
cho mảng.
Bài làm
Thuật giải:
Thuật giải:
Ta thấy mảng A có N phần tử.ta sẽ chia quá
Ta thấy mảng A có N phần tử.ta sẽ chia quá
trình chèn qua n bước.sắp xếp tăng dần từ
trình chèn qua n bước.sắp xếp tăng dần từ
phần tử thứ i đến n.
phần tử thứ i đến n.
Bước 1:
Bước 1:
ta xét phần tử A[1] ta thấy có 1 phần
ta xét phần tử A[1] ta thấy có 1 phần
tử .ta không cần phải làm gì cả.
tử .ta không cần phải làm gì cả.
Kết thúc bước 1
Kết thúc bước 1
Bước 2:
Bước 2:
ta bắt đầu từ phần tử thứ 2 là A[2],ta
ta bắt đầu từ phần tử thứ 2 là A[2],ta
đem A[2] so sánh với A[1].
đem A[2] so sánh với A[1].
-nếu thấy A[2]<A[1] ta lấy A[2] vào vị trí thứ
-nếu thấy A[2]<A[1] ta lấy A[2] vào vị trí thứ
nhất là A[1].
nhất là A[1].
-Nếu Trường hợp A[2]>A[1] ta không làm gì
-Nếu Trường hợp A[2]>A[1] ta không làm gì
cả.
cả.
Kết thúc bước 2
Kết thúc bước 2
Bước 3:
Bước 3:
ta bắt đầu từ phần tử thứ 3.đó là A[3]
ta bắt đầu từ phần tử thứ 3.đó là A[3]
.ta đem so sánh lần lượt với phần tử
.ta đem so sánh lần lượt với phần tử
A[2],A[1],
A[2],A[1],
-nếu A[3]<A[2] thì mang giá trị của A[3] gán
-nếu A[3]<A[2] thì mang giá trị của A[3] gán
cho biến
cho biến
tg
tg
sau đó đẩy A[3] vào vị trí thứ
sau đó đẩy A[3] vào vị trí thứ
3.tiếp theo ta so sánh tg với A[1],nếu
3.tiếp theo ta so sánh tg với A[1],nếu
tg<A[1] thì ta đẩy A[1] vào vị trí thứ 2 rồi
tg<A[1] thì ta đẩy A[1] vào vị trí thứ 2 rồi
đẩy
đẩy
tg
tg
vào vị trí thứ nhất.ngược lại nếu
vào vị trí thứ nhất.ngược lại nếu
tg
tg
>A[1] thì ta đặt tg vào vị trí thứ 2
>A[1] thì ta đặt tg vào vị trí thứ 2
-nếu A[3]>A[2] thì ta không phải làm gì cả.
-nếu A[3]>A[2] thì ta không phải làm gì cả.
Kết thúc bước 3
Kết thúc bước 3
Bước 4:
Bước 4:
ta bắt đầu từ A[4] ta đem A[4] so
ta bắt đầu từ A[4] ta đem A[4] so
sánh lần lượt với các phần tử đứng trên
sánh lần lượt với các phần tử đứng trên
nó,bắt đầu từ A[3].
nó,bắt đầu từ A[3].
-nếu A[4]<A[3] thì ta gán A[4] cho biến
-nếu A[4]<A[3] thì ta gán A[4] cho biến
tg
tg
sau đó đấy các phần tử đứng trên nó mà
sau đó đấy các phần tử đứng trên nó mà
>
>
tg
tg
,mỗi phần tử xuống một vị trí.việc đẩy
,mỗi phần tử xuống một vị trí.việc đẩy
này sẽ dừng khi
này sẽ dừng khi
tg
tg
gặp một phần tử < hơn
gặp một phần tử < hơn
nó,lúc này ta đặt
nó,lúc này ta đặt
tg
tg
vào vị trí trống của
vào vị trí trống của
phần tử > hơn nó bị đẩy xuống cuối cùng.
phần tử > hơn nó bị đẩy xuống cuối cùng.