Tham khảo tài liệu ''kỹ thuật lập trình c chuyên nghiệp phần 3'', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Mảng – Tìm Tì vịị trí t í X t dãy dã Bài tốn: tốn: Tìm vị trí X mảng a có N thành phần phần ầ Giải pháp: pháp: Tìm //input: dãy (a, N), X //output: Vị trí X, -1 khơng có int Search(int a[], int N, int X) { for (int i = 0; i < N; i ++) if (a[i] == X) return i; return -1; } Mảng – Thêm Thê ột thành h phần hầ liệu liệ Bài toán: toán: cần ầ thêm thành phần ầ liệu X vào mảng a có N thành phần phần Hai H i trường t hợp h cần ầ xem xét: xét ét: Dãy chưa có thứ tự Ỉ Thêm Thê X vào cuối ối a Dãy có thứ tự Ỉ Tìm vị trí thích hợp, chèn X vào Mảng – Thêm Thê X vào cuối ối dãy dã Thêm 15 vào (a, 7) 12 N=8 a[N] = X; 15 NX ++; Mảng – Chèn Chè X vào dãy dã tăng tă dần dầ Chèn vào (a, 7) 12 15 N=8 X Vị trí thích hợp: pos Mảng – Chèn Chè X vào dãy dã tăng tă dầ dần //input: dãy (a, N) tăng dần, X //output: dãy (a, N) có X vị trí void Insert(int a[], int &N, int X) { int pos; for (pos = N; (pos>0)&&(a[pos (pos>0)&&(a[pos-1]>X); pos -) ) a[pos] = a[pos – 1]; a[pos] = X; N ++; } Mảng – L Loạii bỏ ột thành h phần hầ liệ liệu Bài toán: toán: loại bỏ thành phần liệu X khỏi mảng a có N thành phần phần Hướng giải quyết: quyết: xác định vị trí X, tìm thấy dồn phần tử phía sau lên để lấp vào chỗ hỗ trống trống ố trường hợp h : hợp: Dãy khơng có thứ tự tự:: lấp phần tử cuối lên Dãy thứ tự tự:: dời tất ấ phần ầ tử sau ví trí X lên trước vị trí trí Mảng – L Loạii bỏ X khỏi dãy dã tăng tă Loại khỏi (a, (a 8) pos 7 8 STOP N=7 X Tìm vị trí 5 Ok, found Dồn vị trí 4, 5, 6, lên Mảng – Loại L i bỏ X khỏi dãy dã tăng tă //input: dãy (a, N), X //output: dãy (a, N) loại bỏ thành phần X int Remove(int a[], int &N, int X) { int pos = Search(a, N, X); if (pos == -1) //khơng có X dãy return 0; N -; ; for (; (pos < N); pos ++) a[pos] = a[pos + 1]; return 1; } Mảng – Sắp Sắ xếp ế Bài toán: toán: Sắp ắ xếp ế thành phần ầ (a, N) đểể thu dãy tăng dần Giải pháp pháp: há : Tìm Tì cách h triệt t iệt tiêu tiê tất cảả nghịch hị h dãy Æ Thuật toán xếp Đổi chổ trực tiếp Mảng – Sắp xếp đổi chổ j 12 15 i Mảng – Sắp xếp đổi chổ j 12 i 15 Mảng – Sắp xếp đổi chổ j 12 i 15 Mảng – Sắp xếp đổi chổ j 12 i 15 Mảng – Sắp xếp đổi chổ 8 12 15 Mảng – Sắp xếp đổi chổ void Swap(int &x &x, int &y) { int t = x; x = y; y = t; } void id I InterchangeSort(int t h S t(i t a[], [] int i t N) { int i, j; for (i = ; i