Báo cáo bài thi giữa kì Bộ môn Cấu Trúc Dữ Liệu CÁC VẤN ĐỀ VỀ MẢNG

29 394 0
Báo cáo bài thi giữa kì Bộ môn Cấu Trúc Dữ Liệu CÁC VẤN ĐỀ VỀ MẢNG

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

NSN Bài báo cáo Nhóm 1 NSN CÁC VẤN ĐỀ VỀ MẢNG NSN  Sắp xếp mảng thông thường  Sắp xếp mảng bằng đệ quy  Tìm kiếm trên mảng NSN Sắp xếp • Sắp xếp chọn trực tiếp • Sắp xếp chèn trực tiếp • Sắp xếp Bublesort • Sắp xếp Heapsort NSN Sắp xếp chọn trực tiếp • Giả sử mảng đã sắp xếp tăng có n phần tử • Chọn phần tử nhỏ nhất đổi chổ với phần tử thứ nhất • Từ n-1 phần tử còn lại,ta cùng chọn ra phần tử nhỏ nhất,đổi chổ cho phân tử thứ hai • Tiếp tục cho đến hết mảng NSN NSN Code void ChonTrucTiep(int a[],int n) { int min; for(int i=0;i<n;++i) { min=i; for(int j=i+1;j<n;++j) if(a[min]>a[j]) min=j; if(i!=min) DoiCho(a[i],a[min]); } XuatMang(a,n); } void ChonTrucTiepDeQui(int a[],int n,int i) { int min; if(i>=n-1) return ; min=i; VongLap2ChonTrucTiep (a,n,min,i+1); if(i!=min) DoiCho(a[i],a[min]); ChonTrucTiepDeQui(a,n, i+1); } NSN Sắp xếp chèn trực tiếp • Từ phấn tử đầu tiên coi như là một mảng mới có một phần tử đã có thứ tự • Chèn thêm phần tử thứ 2 vào trướcnếu nhỏ hơn hoặc sau(nếu lớn hơn) phần tử thứ nhất để có một mảng hai phấn tử có thứ tự. • Cứ tiếp tục như thế cho đến hết • Cuối cùng ta được một mảng có thứ tự NSN 4 9 1 3 57 NSN Code void ChenTrucTiep(int a[],int n) { int x,k; for(int i=1;i<n;++i) { x=a[i]; k=i-1; while(k>=0 && a[k]>x) { a[k+1]=a[k]; k ; } if(i!=k+1) a[k+1]=x; } XuatMang(a,n); } void ChenTrucTiepDeQui(int a[],int n, int i) { if(i>=n) return ; int x=a[i]; int k=i-1; VongLap2ChenTrucTiep(a,x,k) ; a[k+1]=x; ChenTrucTiepDeQui(a,n,i+1); } void VongLap2ChenTrucTiep(int a[],int x,int &k) { if(!(k>=0 && a[k]>x)) return ; a[k+1] = a[k]; k ; VongLap2ChenTrucTiep(a,x,k) ; } [...]... phần tử nhỏ nhất về cuối dãy bằng cách hoán vị a[0] và a[n-1] – B2:Loại bỏ phần tử hỏ nhất (phần tử ở cuối dãy) ra khỏi dãy (n=n-1),phần còn lại coi như là một danh sách mới – B3:Nếu n>0 thi hiệu chỉnh danh sách mới thành một heap mới bằng cáchxét phần tử đầu tiên x=a[0].Sau khi hoán vị,tại vị trí mới nếu x còn có các nút con thi ta điểu chỉnh... if(a[i]==x) return i; return -1; } NSN Tìm kiếm nhị phân • Mảng đã có thứ tự • B1:phạm vi tìm kiếm ban đầu là toàn bộ danh sách • B2:Gán ptử x cần tìm là ptử chính giữa gọi là y,so sánh x và y – Nếu x=y:kết thúc – Nếu xy: phạm vi tìm kiếm là các [hần tử nằm phía sau y • B3:Nếu tồn tại phạm... Tìm kiếm tuần tự • Cho một mảng chưa có thứ tự • Ta bắt đầu tìm kiếm từ phần tử đầu tiên • Nếu phần tử này không phải ta tìm đến phần tử kế • Cứ như thế cho đến khi gặp phần tử cần tìm  tìm kiếm thành công • Hay cho đến khi đi hết mảng không tìm thấy phần tử cần tìm NSN Tìm x=3 1 6 Tìm kiếm thành công 8 12 3 X= Hết mảng không tìn thấy x=10 Tìm...NSN Bubble Sort • Xét tuần tự từng cặp phần tửmột từ từ cuối mảng đến đầu mảng • Đổi chổ sao cho phần tử nhỏ hơn đứng trước phần tử còn lại • Lặp lại quá trình này cho đến khi không còn việc đổ chỗ hai phần tử • Khi đó ta sẽ cò kết quả là một mảng được sắp thứ tự 5 NSN 7 8 1 4 2 1 5 7 8 2 4 6 3 3 6 1 2 5 7 8 3 4 6 1 2 3 5 7 8 4 6... hoán vị,tại vị trí mới nếu x còn có các nút con thi ta điểu chỉnh tiếp.Cứ tiếp tục như thế cho đến khi x ko còn nút con,lặp lại bước1.Nếu n=0,giải thuật kết thúc • Ta được mảng sắp theo thứ tự giảm dần NSN Heap 8 5 3 2 3 6 5 14 9 12 8 7 3 6 5 14 9 12 8 2 3 7 6 5 14 9 12 8 2 7 6 5 14 9 12 3 2 5 7 6 8 14 9 12 3 2 7 6 8 14 9 5 3 2 6 7 9 8 14 12 5 3 2 7 9 8 14 6 5 3 2 . NSN Bài báo cáo Nhóm 1 NSN CÁC VẤN ĐỀ VỀ MẢNG NSN  Sắp xếp mảng thông thường  Sắp xếp mảng bằng đệ quy  Tìm kiếm trên mảng NSN Sắp xếp • Sắp xếp chọn trực. mới – B3:Nếu n>0 thi hiệu chỉnh danh sách mới thành một heap mới bằng cáchxét phần tử đầu tiên x=a[0].Sau khi hoán vị,tại vị trí mới nếu x còn có các nút con thi ta điểu. ; VongLap2ChenTrucTiep(a,x,k) ; } NSN Bubble Sort • Xét tuần tự từng cặp phần tửmột từ từ cuối mảng đến đầu mảng • Đổi chổ sao cho phần tử nhỏ hơn đứng trước phần tử còn lại • Lặp lại

Ngày đăng: 04/04/2015, 15:12

Từ khóa liên quan

Mục lục

  • Bài báo cáo

  • CÁC VẤN ĐỀ VỀ MẢNG

  • Slide 3

  • Sắp xếp

  • Sắp xếp chọn trực tiếp

  • Slide 6

  • Code

  • Sắp xếp chèn trực tiếp

  • Slide 9

  • Slide 10

  • Bubble Sort

  • Slide 12

  • Slide 13

  • Heapsort

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Slide 19

  • Slide 20

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

Tài liệu liên quan