Danh mục

kỹ thuật lập trình C chuyên nghiệp phần 3

Số trang: 22      Loại file: pdf      Dung lượng: 627.24 KB      Lượt xem: 15      Lượt tải: 0    
10.10.2023

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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ả
Nội dung trích xuất từ tài liệu:
kỹ thuật lập trình C chuyên nghiệp phần 3Mảng – Tìm vị trí X trong dãy dã Bài toán: Bài toán: Tìm vị trí X trên mảng a đang có N thành phần. n. Gi pháp: Giải pháp: Tìm tuần tự//input: dãy (a, N), X//output: Vị trí của X, -1 nếu 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 một thành phần dữ liệu thà li Bài toán: Bài toán: cần thêm thành phần dữ liệu X vào mảng a đang có N thành phần.n. Hai trường hợp cần xem xét: Dãy Dãy chưa có thứ tự Thê Thêm X vào cuối a. Dãy Dãy đã có thứ tự Tìm Tìm vị trí thích hợp, chèn X vàoMảng – Thêm X vào cuối dãy dã Thêm 15 vào (a, 7) 0 1 2 3 4 5 6 7 12 2 8 5 1 6 4 N=7 8 a[N] = X; 15 X N ++;Mảng – Chèn X vào dãy tăng dần dã Chèn 6 vào (a, 7) pos 0 1 2 3 4 5 6 7 1 2 4 5 8 15 12 N=7 8 6 X Vị trí thích hợp: 4Mảng – Chèn X vào dãy tăng dần dã//input: dãy (a, N) tăng dần, X//output: dãy (a, N) đã có X ở đúng vị trívoid Insert(int a[], int &N, int X){ int pos; for (pos = N; (pos>0)&&(a[pos-1]>X); pos --) (pos N; (pos>0)&&(a[pos 1]>X); pos a[pos] = a[pos – 1]; a[pos] = X; N ++;}Mảng – Loại bỏ một thành phần dữ liệu thà li Bài toán: Bài toán: loại bỏ thành phần dữ liệu X ra khỏi mảng a đang có N thành phần. n. Hướng giải quyết: xác định vị trí của X, nếu tìm t: thấy thì dồn các phần tử ở phía sau lên để lấp vào chỗ trống. 2 trường hợp: ng. p: Dãy Dãy không có thứ tự: lấp phần tử cuối lên Dãy Dãy đã thứ tự: dời tất cả các phần tử ở sau ví trí của X lên trước 1 vị trí. trí.Mảng – Loại bỏ X ra khỏi dãy tăng kh dã Loại 5 khỏi (a, 8) kh (a 8) pos 0 1 2 3 4 5 6 7 2 5 1 4 7 8 8 9 STOP N=8 7 5 Ok, found X Tìm vị trí của 5 Dồn các vị trí 4, 5, 6, 7 lênMảng – Loại bỏ X ra khỏi dãy tăng kh dã//input: dãy (a, N), X//output: dãy (a, N) đã loại bỏ 1 thành phần Xint Remove(int a[], int &N, int X){ int pos = Search(a, N, X); if (pos == -1) //không có X trong dãy return 0; 0; N --; --; for (; (pos < N); pos ++) a[pos] = a[pos + 1]; return 1;}Mảng – Sắp xếp Bài toán: Bài toán: Sắp xếp các thành phần của (a, N) để thu được dãy tăng dần Gi Giải pháp: Tìm cách triệt tiêu tất cả các nghịch thế háp: của dãy Thu Thuật toán sắp xếp Đổi chổ trực tiếpMảng – Sắp xếp đổi chổ đổ ch j 1 2 3 4 5 6 7 8 12 2 8 5 1 6 4 15 1 iMảng – Sắp xếp đổi chổ đổ ch j 1 2 3 4 5 6 7 8 2 1 12 8 5 2 6 4 15 iMảng – Sắp xếp đổi chổ đổ ch j 1 2 3 4 5 6 7 8 1 2 12 8 5 6 4 15 4 iMảng – Sắp xếp đổi chổ đổ ch j 1 2 3 4 5 6 7 8 1 2 4 12 8 6 5 15 5 iMảng – Sắp xếp đổi chổ đổ ch 1 2 3 4 5 6 7 8 1 2 4 5 6 8 12 15Mảng – Sắp xếp đổi chổ đổ ch void Swap(int &x, int &y) Swap(int &x int &y) { int t = x; x = y; y = t; } void InterchangeSort(int a[], int N) N) { int i, j; i, j; for (i = 0 ; i Mảng nhiều chiều C không hỗ trợ mảng nhiều chiều. Tuy nhiên có thể tiếp u. cận theo hướng: Mảng 2 chiều là mảng một chiều mà mỗi ng: thành phần của nó là một mảng một chiều. “rainfall” là mảng gồm 12float rainfall[12][365]; thành phần, mỗi thành phần là mản ...

Tài liệu được xem nhiều: