BÀI TẬP MÔN THỰC HÀNH CẤU TRÚC DỮ LIỆU

8 1.9K 0
BÀI TẬP MÔN THỰC HÀNH CẤU TRÚC DỮ LIỆU

Đang tải... (xem toàn văn)

Thông tin tài liệu

Thông tin sinh viên: Họ Tên: Lê Thị Hồng Hà Mã sv: 102150218 Số thứ tự: 06 Lớp: 15TCLC1 MSSV: 102150218 Bài làm: Phần I: Mảng, con trỏ 1. Sắp xếp mảng tăng dần theo phương pháp chọn trực tiếp Ý tưởng: Chọn phần tử nhỏ nhất trong n phần tử đầu, đưa phần tử này về vị trí đầu của dãy. Tiếp tục quá trình với n1 phần tử còn lại và bắt đầu từ vị trí thứ 2, lặp lại quá trình trên cho dãy gồm n1 phần tử còn lại. Thuật toán thực hiện n1 lần để lần lượt đưa phần tử nhỏ nhất trong dãy hiện hành về vị trí dẫn đầu. Các bước tiến hành như sau: Bước 1: i = 1; Bước 2: Tìm phần tử amin nhỏ nhất trong dãy hiện hành từ ai đến aN Bước 3 : Hoán vị amin và ai Bước 4 : Nếu i < N1 thì i = i+1; Lặp lại Bước 2 Ngược lại: Dừng. N1 phần tử đã nằm đúng vị trí. Code: include include int a100; void main() { int i, j, n,k; printf(nhap so phan tu cua mang: ); scanf(%d, n); for (i = 0; i < n; i++) { printf(nhap phan tu thu %d: , i + 1); scanf(%d, ai); } for (i = 0; i < n1;i++) for (j = i+1; j < n;j++) if (ai>aj) { k = ai; ai = aj; aj = k; } printf(mang sau khi da sap xep la: ); for (i = 0; i < n; i++) printf( %d , ai); getch();

BÀI TẬP MÔN THỰC HÀNH CẤU TRÚC DỮ LIỆU *Thông tin sinh viên: - Họ & Tên: Lê Thị Hồng Hà - Mã sv: 102150218 - Số thứ tự: 06 - Lớp: 15TCLC1 - MSSV: 102150218 Bài làm: Phần I: Mảng, trỏ Sắp xếp mảng tăng dần theo phương pháp chọn trực tiếp • Ý tưởng: - Chọn phần tử nhỏ n phần tử đầu, đưa phần tử vị trí đầu dãy Tiếp tục trình với n-1 phần tử lại vị trí thứ 2, lặp lại trình cho dãy gồm n-1 phần tử lại - Thuật toán thực n-1 lần để đưa phần tử nhỏ dãy hành vị trí dẫn đầu • Các bước tiến hành sau: - Bước 1: i = 1; - Bước 2: Tìm phần tử a[min] nhỏ dãy hành từ a[i] đến a[N] - Bước : Hoán vị a[min] a[i] - Bước : Nếu i < N-1 i = i+1; Lặp lại Bước - Ngược lại: Dừng //N-1 phần tử nằm vị trí Code: #include #include int a[100]; void main() • { int i, j, n,k; printf("nhap so phan tu cua mang: "); scanf("%d", &n); for (i = 0; i < n; i++) { printf("nhap phan tu thu %d: ", i + 1); scanf("%d", &a[i]); } for (i = 0; i < n-1;i++) for (j = i+1; j < n;j++) if (a[i]>a[j]) { k = a[i]; a[i] = a[j]; a[j] = k; } printf("mang sau da sap xep la:\n"); for (i = 0; i < n; i++) printf(" %d ", a[i]); getch(); } Hãy tìm phần tử d có mảng theo pp tìm kiếm nhị phân: • Ý tưởng: - Đối với dãy số có thứ tự (giả sử thứ tự tăng), phần tử dãy có quan hệ a(i-1)

Ngày đăng: 28/05/2016, 10:28

Tài liệu cùng người dùng

Tài liệu liên quan