SlideShare uma empresa Scribd logo
1 de 29
BÁO CÁO THỰC TẬP CƠ SỞ
ĐỀ TÀI: TÌM HIỂU MỘT SỐ THUẬT TOÁN SẮP
XẾP
Sinh viên thực hiện: Trần Đình Nguyên
Giáo viên hướng dẫn: Vũ Thị Thúy Thảo
1.Nội dung chính
Một số kiến thức cơ bản.
Một số thuật toán sắp xếp.

Tìm hiểu ngôn ngữ Java.
Demo chương trình.
2.Một số kiến thức cơ bản
Thuật toán:
Khái niệm thuật toán sắp xếp:
Thuật toán là một tập hữu hạn các chỉ thị hay
phương cách được định nghĩa rõ ràng cho việc

hoàn tất một sự việc từ một trạng thái ban đầu
cho trước; khi các chỉ thị này được áp dụng triệt
để thì sẽ dẩn đến kết quả sau cùng như đã dự

đoán.
Khái niệm thuật toán sắp xếp.
• Sắp xếp (sort) là một quá trình biến đổi

một danh sách các đối tượng thành một
danh sách thỏa mãn một thứ tự xác định
nào đó.
3.Một số thuật toán sắp xếp
3.1. Sắp xếp chọn(Selection Sort)
3.1.1. Tư tưởng
 Đầu tiên chọn phần tử có khóa nhỏ nhất trong n
phần tử a[1] đến a[n] và hoán vị
với phần tử a[1].
 Chọn phần tử có khóa nhỏ nhất trong n-1 phần tử từ
a[2] đến a[n] và hoán vị nó với a[2]…
 Ở bước i, chọn phần tử có khóa nhỏ nhất trong n-i+1
phần tử từ a[i] đến a[n] và hoán vị nó với a[i].
 Sau n-1 bước thì ta thu được mảng đã được sắp xếp.
3.1.2. Thuật toán
Procedure SelectionSort;
Var I,j,k: integer;
min: Real;
Begin
for i:=1 to n-1 do
Begin
k:=1; min:= a[i];
for j:=i+1 to n do
If a[j]<min then
Begin
min:= a[j];
k:=j;
End;
Swap(a[i],a[k]);
End;
End;
3.1.3. Độ phức tạp của thuật toán
T(n)=O(n2)

3.1.4. Ví dụ
Ban đầu: 5 6 2 2 10 12 9 10 9 3
Bước 1: 2| 6 5 2 10 12 9 10 9 3
Bước 2: 2 2| 5 6 10 12 9 10 9 3
Bước 3: 2

2 3| 6 10 12 9 10 9 5

Bước 4: 2 2

3

5| 10 12 9 10 9 6

Bước 5: 2 2

3

5

6| 12 9

10 9 10

Bước 6: 2 2

3

5

6

10 9 10

Bước 7: 2 2

3

5

6 9 9| 10 12 10

9| 12

Bước 8: 2 2 3

5

6

9

9 10| 12 10

Bước 9: 2 2 3

5

6

9

9 10 10 12
3.2. Sắp xếp chèn(Insretion
Sort).
3.2.1. Tư tưởng
 Lấy dần từng phần tử từ dãy nguồn, chèn vào dãy
đích sao cho đảm bảo dãy đích có thứ tự.

 Bước 1: Chèn phần tử a[2] vào danh sách đã có thứ
tự a[1] sao cho a[1], a[2] là một danh sách có thứ tự.
 Bước i: Chèn phần tử a[i+1] vào danh sách đã có thứ
tự a[1], a[2],…a[i] sao cho a[1], a[2], …a[i+1] là một
danh sách có thứ tự.
3.2. Thuật toán
Procedure InsertionSort;
Var i,j: Integer;
Begin
For i:=2 to n do
Begin
j:=i;
While (j>1) anh (a[j]<a[j-1]) do
Begin
Swap (a[j],a[j-1]);
j:=j-1;
End;
End;
End;
3.3. Độ phức tạp
T(n)=O(n2)

3.4. Ví dụ
Ban đầu: 5 6 2 2 10 12 9 10 9 3
Bước 1: 5 6
Bước 2: 2 5 6
Bước 3: 2 2 5 6
Bước 4: 2 2 5 6 10
Bước 5: 2 2 5 6 10 12
Bước 6: 2 2 5 6 9 10 12
Bước 7: 2 2 5 6 9 10 10 12
Bước 8: 2 2 5 6 9 9 10 10 12
Bước 9: 2 2 3 5 6 9 9 10 10 12
3.3. Sắp xếp nổi bọt(Buble Sort)
3.3.1. Tư tưởng
 Bước 1: Xét các phần tử từ a[n] đến a[2], với mổi phần
tử a[j] so sánh nó vá khóa của phần tử a[j-1]. Nếu
khóa của a[j] nhỏ hơn khóa của a[j-1] thì đổi chổ
a[j] với a[j-1].
 Bước 2: Xét các phần tử từ a[n] đến a[3], làm tương tự
bước 1.
 Bước i: Xét các phần tử từ a[n] đến a[i+1], làm tương tự
 Sau n bước ta được dãy đã có thứ tự.
3.3.2. Thuật toán
Procedure BubbleSort;
Var i,j: integer;
Begin
1. For i:=1 to n do
2.
For j:=n downto i+1 do
3.
if(a[j]<a[j-1]) then
4.
Swap(a[j],a[j-1]);
End;
3.3.3. Độ phức tạp
T(n)=O(n)

3.3.4. Ví dụ
Bắt đầu
4
5
6
2
2
10
12
9
10
3

Bước 1
2
5
6
2
3
10
12
9
9

Bước 2

Bước 3

Bước

2
2
5
6
3
9
10
12
10

2
2
3
5
6
9
9
10
10

2
2
3
5
6
9
9
10
12
3.4. Sắp xếp nhanh(Quick Sort)
3.4.1. Tư tưởng
 Xét mảng A có các bản ghi từ a[1],…,a[n].
 Chọn một thành phần của mảng làm chốt(Pivot).
Phân hoạch mảng thành hai phần bằng cách chuyển
tất cả các thành phần có khóa lớn hơn chốt sang phải
chốt, các thành phần có khóa bé hơn hoặc bằng chốt
sang trái chốt.
 Sắp xếp độc lập hai mảng con a[1,…k-1], a[k+1,…n]
bằng cách gọi đệ quy thuật toán trên.
3.4.2. Thuật toán
Procedure QuickSort(i,j : integer);
Var k: integer;
Begin
If(i<j) then
Begin
Partition(i,j,);
QuickSort(i,k-1);
QuickSort(k+1,j);
End;
End;
Procedure Partition(i,j: integer; var R:real);
Var L: integer;
P: kiểu phần tử mảng;
Begin
P:=A[i]; L:=I; R:=j+1;
Repeat L:=L+1 util (A[L] > p) or (L>j);
Repeat R:=R-1 util A[R] <= p;
While L < R do
Begin
Swap(A[L],A[R]);
Repeat L:=L+1 util A[L] > p;
Repeat R:=R-1 util A[R] <= p;
End;
Swap(A[i],A[R]);
End;
3.4.3. Độ phức tạp
T(n)=O(n)

3.4.4. Ví dụ


10 15 4 11 6 3 5 14

lấy chốt p=A[1]=10,L=1,R=9

 Lần thứ nhất: Ta có L=2 và R=7

10 5 4 11 6 3 15 14

 Khi L=4, R=6.

10 5 4 3 6 11 15 14

 Khi L=6,R=5

6 5 4 3 10 11 15 14

 Như vậy mảng A[1..8] đã được phân hoạch thành hai
mảng con A[1..R-1] và A[R+1..8] tức A[1..4] và A[6..8]. Sau
đó tiếp tục phân hoạch hai mảng con trên.
3.5. Sắp xếp vun đống(Heap Sort)
3.5.1. Tư tưởng
 Heap là một cây nhị phân đầy đủ trái mà mổi nút
được gán một giá trị khóa sao cho giá trị khóa ở nút
cha bao giờ củng nhỏ hơn hoặc bằng giá trị khóa ở
hai nut con. Do đó trong Heap ta có:
 Nút gốc có khóa bé nhất
 Dãy khóa nhận được khi đi theo một đường bất kì là
dãy có thứ tự tăng dần
3.5.2. Thuật toán
Procedure PUSHdOWN(a,b:integer);
Var i,j: integer;
ok: Boolean;
Begin
i:=a; ok:= false;
1. While (i<=b div 2) and not ok do
Begin
2.
If i=b div 2 then j:=2*i
{ chỉ có con trái }
else if A[2*i] < A[2*i+1] then j:=2*i
else j:=2*i+1;
3.
If A[i] > A[j] then
Begin
Swap(A[i],A[j]);
i:=j;
End;
else ok:=true;
End;
End;
Sử dụng PUSHDOWN trong thủ tục HEAPSORT. Kết quả
được mảng A[1…n] xếp giảm dần.
Procedure HEAPSORT;
Var i: integer;
Begin
1. for i:=n div 2 downto 1 do PUSHDOWN(i,n);
{ biến đổi mảng A[1..n] thành mảng
Heap}
2. for i:=n downto 2 do
Begin
Swap(A[1],A[i]); //đổi chổ gốc
PUSHDOWN(1,i-1); //vun lại đống
End;
End;
3.5.3. Độ phức tạp
T(n)=O(nlogn)

3.5.4. Ví dụ

2,3,5,6,4,1,5
Vun cây gốc A[3] được mảng A={2,3,7,6,4,1,5}
Vun cây gốc A[2] được mảng A={2,6,7,3,4,1,5}
Vun cây gốc A[1] được mảng A={7,6,5,3,4,1,2}
Bây giờ A={7,6,5,3,4,1,2} đã là đống.
Sắp xếp
Đổi chổ A[1] với A[7]: A={2,6,5,3,4,1,7} và vun lại mảng A[1..6] được
mảng A={6,4,5,3,2,1,7}.
Đổi chổ A[1] với A[6]: A={1,4,5,3,2,6,7} và vun lại mảng A[1..5] được
mảng A={5,4,2,3,1,6,7}
Đổi chổ A[1] với A[5]: A={1,4,2,3,5,6,7} và vun lại mảng A[1..4] được
mảng A={4,3,2,1,5,6,7}
Đổi chổ A[1] với A[4]: A={1,3,2,4,5,6,7} vá vun lại mảng A[1..3] được
mảng A={3,2,1,4,5,6,7}
Đổi chổ A[1] với A[3]: A={2,1,3,4,5,6,7} và vun lại mảng A[1..2] được
mảng A={2,1,3,4,5,6,7}
Đổi chổ A[1] với A[2]: A={1,2,3,4,5,6,7}
Mảng còn lại chỉ một phần tử quá trình sắp xếp đã xong.
4. Giới thiệu về ngôn ngữ Java
4.1. Java là gì?
Java là ngôn ngữ lập trình hướng đối tượng( tựa C++)
do Sun Microsystem đưa ra vào giữa thập niên 90.

Chương trình viết bằng ngôn ngữ java có thể chạy trên
bất kì hệ điều hành nào có cài máy ảo java( Java Vitual
Machine).
4.2. Lịch sử phát triển
 Ngôn ngữ lập trình Java do James Gosling và các
công sự của Công ty Sun Microsystem phát triển.
 Java được phát triển dựa trên C++ nhưng loại bỏ một
số tính năng nguy hiểm của C++ và có khả năng chạy
trên nhiều nền phần cứng khác nhau.
 Java ra đời và được giới thiệu năm 1995.
4.3. Cấu trúc của Java
Công nghệ Java phát triển mạnh mẽ nhờ vào "đại gia Sun

Microsystem" cung cấp nhiều công cụ, thư viện lập trình
phong phú hỗ trợ cho việc phát triển nhiều loại hình ứng
dụng khác nhau cụ thể như: J2SE (Java 2 Standard Edition)

hỗ trợ phát triển những ứng dụng đơn, ứng dụng clientserver; J2EE (Java 2 Enterprise Edition) hỗ trợ phát triển các
ứng dụng thương mại, J2ME (Java 2 Micro Edition) hỗ trợ
phát triển các ứng dụng trên các thiết bị di động, không dây,
…
5. Demo
Code của chương trình.
Nhập dữ liệu cho chương trình.
Kết quả sau khi sắp xếp.
The end!
Thank for your watching!

Mais conteúdo relacionado

Mais procurados

Tính toán tải trọng Gió cho Nhà cao tầng theo TCVN
Tính toán tải trọng Gió cho Nhà cao tầng theo TCVNTính toán tải trọng Gió cho Nhà cao tầng theo TCVN
Tính toán tải trọng Gió cho Nhà cao tầng theo TCVNHồ Việt Hùng
 
Giáo trình mạng máy tính PTIT
Giáo trình mạng máy tính PTITGiáo trình mạng máy tính PTIT
Giáo trình mạng máy tính PTITNguynMinh294
 
Công nghệ may - Phân tích cơ hội và thách thức trong quản lý chất lượng sản ...
Công nghệ may - Phân tích cơ hội và thách thức trong quản lý chất  lượng sản ...Công nghệ may - Phân tích cơ hội và thách thức trong quản lý chất  lượng sản ...
Công nghệ may - Phân tích cơ hội và thách thức trong quản lý chất lượng sản ...TÀI LIỆU NGÀNH MAY
 
TÁC DỤNG CÁC LỆNH TRONG GERBER ACCUMARK 8.5
TÁC DỤNG CÁC LỆNH TRONG GERBER ACCUMARK 8.5TÁC DỤNG CÁC LỆNH TRONG GERBER ACCUMARK 8.5
TÁC DỤNG CÁC LỆNH TRONG GERBER ACCUMARK 8.5Nhân Quả Công Bằng
 
[Công nghệ may] bài giảng thực hành may i
[Công nghệ may] bài giảng thực hành may i[Công nghệ may] bài giảng thực hành may i
[Công nghệ may] bài giảng thực hành may iTÀI LIỆU NGÀNH MAY
 
Bai giang chuyen de ud rm trong tinh cau btct dul phan doan
Bai giang chuyen de ud rm trong tinh cau btct dul phan doanBai giang chuyen de ud rm trong tinh cau btct dul phan doan
Bai giang chuyen de ud rm trong tinh cau btct dul phan doanTtx Love
 
[Công nghệ may] tài liệu hướng dẫn sử dụng phần mềm accumark
[Công nghệ may] tài liệu hướng dẫn sử dụng phần mềm accumark[Công nghệ may] tài liệu hướng dẫn sử dụng phần mềm accumark
[Công nghệ may] tài liệu hướng dẫn sử dụng phần mềm accumarkTÀI LIỆU NGÀNH MAY
 
THIẾT KẾ RẬP ÁO NỮ BIẾN KIỂU TRÊN GERBER (chi tiết từng bước)
THIẾT KẾ RẬP ÁO NỮ BIẾN KIỂU TRÊN GERBER (chi tiết từng bước)THIẾT KẾ RẬP ÁO NỮ BIẾN KIỂU TRÊN GERBER (chi tiết từng bước)
THIẾT KẾ RẬP ÁO NỮ BIẾN KIỂU TRÊN GERBER (chi tiết từng bước)Nhân Quả Công Bằng
 
ĐỀ THI VÀ ĐÁP ÁN DUNG SAI
ĐỀ THI VÀ ĐÁP ÁN DUNG SAIĐỀ THI VÀ ĐÁP ÁN DUNG SAI
ĐỀ THI VÀ ĐÁP ÁN DUNG SAIcanhbao
 
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPTBÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPTMasterCode.vn
 
Một số dụng cụ thiết bị sử dụng ở phân xưởng cắt
Một số dụng cụ thiết bị sử dụng ở phân xưởng cắtMột số dụng cụ thiết bị sử dụng ở phân xưởng cắt
Một số dụng cụ thiết bị sử dụng ở phân xưởng cắtTÀI LIỆU NGÀNH MAY
 
Tài Liệu Kỹ Thuật Áo Vest Nam Mã Hàng DWAYNE
Tài Liệu Kỹ Thuật Áo Vest Nam Mã Hàng DWAYNETài Liệu Kỹ Thuật Áo Vest Nam Mã Hàng DWAYNE
Tài Liệu Kỹ Thuật Áo Vest Nam Mã Hàng DWAYNENhân Quả Công Bằng
 
KCS KTV - Phần mềm kiểm tra cốt thép Vách
KCS KTV - Phần mềm kiểm tra cốt thép VáchKCS KTV - Phần mềm kiểm tra cốt thép Vách
KCS KTV - Phần mềm kiểm tra cốt thép VáchHồ Việt Hùng
 
ACCUMARK EXPLORER – Thiết Lập Hệ Thống
ACCUMARK EXPLORER – Thiết Lập Hệ ThốngACCUMARK EXPLORER – Thiết Lập Hệ Thống
ACCUMARK EXPLORER – Thiết Lập Hệ ThốngNhân Quả Công Bằng
 
TÌM KIẾM VÀ LỌC ĐỐI TƯỢNG TRONG AUTOCAD - Phan Minh Tan
TÌM KIẾM VÀ LỌC ĐỐI TƯỢNG TRONG AUTOCAD - Phan Minh TanTÌM KIẾM VÀ LỌC ĐỐI TƯỢNG TRONG AUTOCAD - Phan Minh Tan
TÌM KIẾM VÀ LỌC ĐỐI TƯỢNG TRONG AUTOCAD - Phan Minh TanPhan Minh Tân
 
Tmkt pccc eden a 9 5-2012
Tmkt pccc eden a 9 5-2012Tmkt pccc eden a 9 5-2012
Tmkt pccc eden a 9 5-2012Huyền Vân
 

Mais procurados (20)

Tính toán tải trọng Gió cho Nhà cao tầng theo TCVN
Tính toán tải trọng Gió cho Nhà cao tầng theo TCVNTính toán tải trọng Gió cho Nhà cao tầng theo TCVN
Tính toán tải trọng Gió cho Nhà cao tầng theo TCVN
 
Giáo trình mạng máy tính PTIT
Giáo trình mạng máy tính PTITGiáo trình mạng máy tính PTIT
Giáo trình mạng máy tính PTIT
 
Công nghệ may - Phân tích cơ hội và thách thức trong quản lý chất lượng sản ...
Công nghệ may - Phân tích cơ hội và thách thức trong quản lý chất  lượng sản ...Công nghệ may - Phân tích cơ hội và thách thức trong quản lý chất  lượng sản ...
Công nghệ may - Phân tích cơ hội và thách thức trong quản lý chất lượng sản ...
 
Bài giảng THIẾT BỊ MAY
Bài giảng THIẾT BỊ MAYBài giảng THIẾT BỊ MAY
Bài giảng THIẾT BỊ MAY
 
TÁC DỤNG CÁC LỆNH TRONG GERBER ACCUMARK 8.5
TÁC DỤNG CÁC LỆNH TRONG GERBER ACCUMARK 8.5TÁC DỤNG CÁC LỆNH TRONG GERBER ACCUMARK 8.5
TÁC DỤNG CÁC LỆNH TRONG GERBER ACCUMARK 8.5
 
[Công nghệ may] bài giảng thực hành may i
[Công nghệ may] bài giảng thực hành may i[Công nghệ may] bài giảng thực hành may i
[Công nghệ may] bài giảng thực hành may i
 
Bai giang chuyen de ud rm trong tinh cau btct dul phan doan
Bai giang chuyen de ud rm trong tinh cau btct dul phan doanBai giang chuyen de ud rm trong tinh cau btct dul phan doan
Bai giang chuyen de ud rm trong tinh cau btct dul phan doan
 
[Công nghệ may] tài liệu hướng dẫn sử dụng phần mềm accumark
[Công nghệ may] tài liệu hướng dẫn sử dụng phần mềm accumark[Công nghệ may] tài liệu hướng dẫn sử dụng phần mềm accumark
[Công nghệ may] tài liệu hướng dẫn sử dụng phần mềm accumark
 
BTL Lập trình C#
BTL Lập trình C#BTL Lập trình C#
BTL Lập trình C#
 
THIẾT KẾ RẬP ÁO NỮ BIẾN KIỂU TRÊN GERBER (chi tiết từng bước)
THIẾT KẾ RẬP ÁO NỮ BIẾN KIỂU TRÊN GERBER (chi tiết từng bước)THIẾT KẾ RẬP ÁO NỮ BIẾN KIỂU TRÊN GERBER (chi tiết từng bước)
THIẾT KẾ RẬP ÁO NỮ BIẾN KIỂU TRÊN GERBER (chi tiết từng bước)
 
ĐỀ THI VÀ ĐÁP ÁN DUNG SAI
ĐỀ THI VÀ ĐÁP ÁN DUNG SAIĐỀ THI VÀ ĐÁP ÁN DUNG SAI
ĐỀ THI VÀ ĐÁP ÁN DUNG SAI
 
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPTBÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
BÀI 2: Thiết kế FORM và xử lý sự kiện - Giáo trình FPT
 
đồ áN thiết kế áo veston nam
đồ áN thiết kế áo veston namđồ áN thiết kế áo veston nam
đồ áN thiết kế áo veston nam
 
Một số dụng cụ thiết bị sử dụng ở phân xưởng cắt
Một số dụng cụ thiết bị sử dụng ở phân xưởng cắtMột số dụng cụ thiết bị sử dụng ở phân xưởng cắt
Một số dụng cụ thiết bị sử dụng ở phân xưởng cắt
 
Tài Liệu Kỹ Thuật Áo Vest Nam Mã Hàng DWAYNE
Tài Liệu Kỹ Thuật Áo Vest Nam Mã Hàng DWAYNETài Liệu Kỹ Thuật Áo Vest Nam Mã Hàng DWAYNE
Tài Liệu Kỹ Thuật Áo Vest Nam Mã Hàng DWAYNE
 
KCS KTV - Phần mềm kiểm tra cốt thép Vách
KCS KTV - Phần mềm kiểm tra cốt thép VáchKCS KTV - Phần mềm kiểm tra cốt thép Vách
KCS KTV - Phần mềm kiểm tra cốt thép Vách
 
ACCUMARK EXPLORER – Thiết Lập Hệ Thống
ACCUMARK EXPLORER – Thiết Lập Hệ ThốngACCUMARK EXPLORER – Thiết Lập Hệ Thống
ACCUMARK EXPLORER – Thiết Lập Hệ Thống
 
TÌM KIẾM VÀ LỌC ĐỐI TƯỢNG TRONG AUTOCAD - Phan Minh Tan
TÌM KIẾM VÀ LỌC ĐỐI TƯỢNG TRONG AUTOCAD - Phan Minh TanTÌM KIẾM VÀ LỌC ĐỐI TƯỢNG TRONG AUTOCAD - Phan Minh Tan
TÌM KIẾM VÀ LỌC ĐỐI TƯỢNG TRONG AUTOCAD - Phan Minh Tan
 
Tmkt pccc eden a 9 5-2012
Tmkt pccc eden a 9 5-2012Tmkt pccc eden a 9 5-2012
Tmkt pccc eden a 9 5-2012
 
Cơ bản về visual basic
Cơ bản về visual basicCơ bản về visual basic
Cơ bản về visual basic
 

Destaque

Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTBài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTMasterCode.vn
 
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
Chuong 2  phan tich cac thuat toan sap xep va tim kiemChuong 2  phan tich cac thuat toan sap xep va tim kiem
Chuong 2 phan tich cac thuat toan sap xep va tim kiemgaconne1985
 
Bai toan va thuat toan
Bai toan va thuat toanBai toan va thuat toan
Bai toan va thuat toanHữu Duy Duy
 
Bai giang thuat toan tim kiem va sap xep
Bai giang thuat toan tim kiem va sap xepBai giang thuat toan tim kiem va sap xep
Bai giang thuat toan tim kiem va sap xeptran0phu
 
Baigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật ToánBaigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật ToánVan Vo
 
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPTBài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPTMasterCode.vn
 
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTBài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTMasterCode.vn
 
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPTBài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPTMasterCode.vn
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnMasterCode.vn
 
Giao an trinh_pascal_bai_tap_co_dap_an_huong_dan
Giao an trinh_pascal_bai_tap_co_dap_an_huong_danGiao an trinh_pascal_bai_tap_co_dap_an_huong_dan
Giao an trinh_pascal_bai_tap_co_dap_an_huong_danVõ Tâm Long
 
Phương pháp tham lam giải bài toán lập lịch công việc
Phương pháp tham lam giải bài toán lập lịch công việcPhương pháp tham lam giải bài toán lập lịch công việc
Phương pháp tham lam giải bài toán lập lịch công việcNguyễn Danh Thanh
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trìnhHuy Rùa
 
gioi thieu ve java
gioi thieu ve javagioi thieu ve java
gioi thieu ve javaDat Ngo
 
Giáo trình cấu trúc dữ liệu và giải thuật phần 1 tài liệu, ebook, giáo trình
Giáo trình cấu trúc dữ liệu và giải thuật phần 1   tài liệu, ebook, giáo trìnhGiáo trình cấu trúc dữ liệu và giải thuật phần 1   tài liệu, ebook, giáo trình
Giáo trình cấu trúc dữ liệu và giải thuật phần 1 tài liệu, ebook, giáo trìnhTrần Văn Nam
 
Thuat toan tin hoc
Thuat toan tin hocThuat toan tin hoc
Thuat toan tin hocladoga
 
Tìm Hiểu WLAn, Giao Thức Radius, Mikrotik Router
Tìm Hiểu WLAn, Giao Thức Radius, Mikrotik RouterTìm Hiểu WLAn, Giao Thức Radius, Mikrotik Router
Tìm Hiểu WLAn, Giao Thức Radius, Mikrotik RouterLe Trung Hieu
 
Phân tích một số thuật toán
Phân tích một số thuật toánPhân tích một số thuật toán
Phân tích một số thuật toánHồ Lợi
 

Destaque (20)

Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTBài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
 
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
Chuong 2  phan tich cac thuat toan sap xep va tim kiemChuong 2  phan tich cac thuat toan sap xep va tim kiem
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
 
Bai toan va thuat toan
Bai toan va thuat toanBai toan va thuat toan
Bai toan va thuat toan
 
Bai giang thuat toan tim kiem va sap xep
Bai giang thuat toan tim kiem va sap xepBai giang thuat toan tim kiem va sap xep
Bai giang thuat toan tim kiem va sap xep
 
Baigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật ToánBaigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật Toán
 
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPTBài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
 
Quick sort
Quick sortQuick sort
Quick sort
 
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTBài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
 
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPTBài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
Bài 7: Danh sách liên kết (LINKED LIST) và tập hợp (SET) - Giáo trình FPT
 
Lập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vnLập trình sáng tạo creative computing textbook mastercode.vn
Lập trình sáng tạo creative computing textbook mastercode.vn
 
Giao an trinh_pascal_bai_tap_co_dap_an_huong_dan
Giao an trinh_pascal_bai_tap_co_dap_an_huong_danGiao an trinh_pascal_bai_tap_co_dap_an_huong_dan
Giao an trinh_pascal_bai_tap_co_dap_an_huong_dan
 
Phương pháp tham lam giải bài toán lập lịch công việc
Phương pháp tham lam giải bài toán lập lịch công việcPhương pháp tham lam giải bài toán lập lịch công việc
Phương pháp tham lam giải bài toán lập lịch công việc
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trình
 
gioi thieu ve java
gioi thieu ve javagioi thieu ve java
gioi thieu ve java
 
BáO CáO Lý ThuyếT Java
BáO CáO Lý ThuyếT JavaBáO CáO Lý ThuyếT Java
BáO CáO Lý ThuyếT Java
 
Giáo trình cấu trúc dữ liệu và giải thuật phần 1 tài liệu, ebook, giáo trình
Giáo trình cấu trúc dữ liệu và giải thuật phần 1   tài liệu, ebook, giáo trìnhGiáo trình cấu trúc dữ liệu và giải thuật phần 1   tài liệu, ebook, giáo trình
Giáo trình cấu trúc dữ liệu và giải thuật phần 1 tài liệu, ebook, giáo trình
 
Thuat toan tin hoc
Thuat toan tin hocThuat toan tin hoc
Thuat toan tin hoc
 
Tìm Hiểu WLAn, Giao Thức Radius, Mikrotik Router
Tìm Hiểu WLAn, Giao Thức Radius, Mikrotik RouterTìm Hiểu WLAn, Giao Thức Radius, Mikrotik Router
Tìm Hiểu WLAn, Giao Thức Radius, Mikrotik Router
 
Cây Nhị Phân
Cây Nhị PhânCây Nhị Phân
Cây Nhị Phân
 
Phân tích một số thuật toán
Phân tích một số thuật toánPhân tích một số thuật toán
Phân tích một số thuật toán
 

Semelhante a TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢN

Bai3 timkiem sapxep
Bai3 timkiem sapxepBai3 timkiem sapxep
Bai3 timkiem sapxepHồ Lợi
 
Bai3 timkiemsapxep
Bai3 timkiemsapxepBai3 timkiemsapxep
Bai3 timkiemsapxepnhà tôi
 
Chuong 2 Tim Kiem N Sap Xep
Chuong 2   Tim Kiem N Sap XepChuong 2   Tim Kiem N Sap Xep
Chuong 2 Tim Kiem N Sap Xepquang
 
Chuong 2 Tim Kiem N Sap Xep
Chuong 2   Tim Kiem N Sap XepChuong 2   Tim Kiem N Sap Xep
Chuong 2 Tim Kiem N Sap Xepquang
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2Nguyễn Công Hoàng
 
1. Algorithms_ Giải thuật.ppt
1. Algorithms_ Giải thuật.ppt1. Algorithms_ Giải thuật.ppt
1. Algorithms_ Giải thuật.pptNynonBi
 
304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docx304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docxNguynAnThch
 
Sap xep va tim kiem
Sap xep va tim kiem Sap xep va tim kiem
Sap xep va tim kiem acumenvn
 
Tuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdfTuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdfNguynVnTun74
 
C2 sap xep
C2 sap xepC2 sap xep
C2 sap xephiep0109
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4Nguyễn Công Hoàng
 
Chap1 new (tran dai's conflicted copy 2013 04-02)
Chap1 new (tran dai's conflicted copy 2013 04-02)Chap1 new (tran dai's conflicted copy 2013 04-02)
Chap1 new (tran dai's conflicted copy 2013 04-02)Loc Tran
 
ChuyenDeSoHocVMF.pdf
ChuyenDeSoHocVMF.pdfChuyenDeSoHocVMF.pdf
ChuyenDeSoHocVMF.pdfHngAnhV13
 

Semelhante a TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢN (20)

Chuong 2
Chuong 2Chuong 2
Chuong 2
 
Bai3 timkiem sapxep
Bai3 timkiem sapxepBai3 timkiem sapxep
Bai3 timkiem sapxep
 
Bai3 timkiemsapxep
Bai3 timkiemsapxepBai3 timkiemsapxep
Bai3 timkiemsapxep
 
Chuong 2 Tim Kiem N Sap Xep
Chuong 2   Tim Kiem N Sap XepChuong 2   Tim Kiem N Sap Xep
Chuong 2 Tim Kiem N Sap Xep
 
Chuong 2 Tim Kiem N Sap Xep
Chuong 2   Tim Kiem N Sap XepChuong 2   Tim Kiem N Sap Xep
Chuong 2 Tim Kiem N Sap Xep
 
CHƯƠNG 4.pdf
CHƯƠNG 4.pdfCHƯƠNG 4.pdf
CHƯƠNG 4.pdf
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
Giáo trình Phân tích và thiết kế giải thuật - CHAP 2
 
Timkiem&sapxep
Timkiem&sapxepTimkiem&sapxep
Timkiem&sapxep
 
08 long gagd_t3+t5
08 long gagd_t3+t508 long gagd_t3+t5
08 long gagd_t3+t5
 
1. Algorithms_ Giải thuật.ppt
1. Algorithms_ Giải thuật.ppt1. Algorithms_ Giải thuật.ppt
1. Algorithms_ Giải thuật.ppt
 
304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docx304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docx
 
Sap xep va tim kiem
Sap xep va tim kiem Sap xep va tim kiem
Sap xep va tim kiem
 
Tuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdfTuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdf
 
C2 sap xep
C2 sap xepC2 sap xep
C2 sap xep
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
Giáo trình Phân tích và thiết kế giải thuật - CHAP 4
 
Chap1 new (tran dai's conflicted copy 2013 04-02)
Chap1 new (tran dai's conflicted copy 2013 04-02)Chap1 new (tran dai's conflicted copy 2013 04-02)
Chap1 new (tran dai's conflicted copy 2013 04-02)
 
Ctdl 1993
Ctdl   1993Ctdl   1993
Ctdl 1993
 
CHƯƠNG 2.pdf
CHƯƠNG 2.pdfCHƯƠNG 2.pdf
CHƯƠNG 2.pdf
 
ChuyenDeSoHocVMF.pdf
ChuyenDeSoHocVMF.pdfChuyenDeSoHocVMF.pdf
ChuyenDeSoHocVMF.pdf
 
Chuyen desohocvmf
Chuyen desohocvmfChuyen desohocvmf
Chuyen desohocvmf
 

TÌM HIỂU VỀ MỘT SỐ THUẬT TOÁN SẮP XẾP ĐƠN GIẢN

  • 1. BÁO CÁO THỰC TẬP CƠ SỞ ĐỀ TÀI: TÌM HIỂU MỘT SỐ THUẬT TOÁN SẮP XẾP Sinh viên thực hiện: Trần Đình Nguyên Giáo viên hướng dẫn: Vũ Thị Thúy Thảo
  • 2. 1.Nội dung chính Một số kiến thức cơ bản. Một số thuật toán sắp xếp. Tìm hiểu ngôn ngữ Java. Demo chương trình.
  • 3. 2.Một số kiến thức cơ bản Thuật toán: Khái niệm thuật toán sắp xếp: Thuật toán là một tập hữu hạn các chỉ thị hay phương cách được định nghĩa rõ ràng cho việc hoàn tất một sự việc từ một trạng thái ban đầu cho trước; khi các chỉ thị này được áp dụng triệt để thì sẽ dẩn đến kết quả sau cùng như đã dự đoán.
  • 4. Khái niệm thuật toán sắp xếp. • Sắp xếp (sort) là một quá trình biến đổi một danh sách các đối tượng thành một danh sách thỏa mãn một thứ tự xác định nào đó.
  • 5. 3.Một số thuật toán sắp xếp 3.1. Sắp xếp chọn(Selection Sort) 3.1.1. Tư tưởng  Đầu tiên chọn phần tử có khóa nhỏ nhất trong n phần tử a[1] đến a[n] và hoán vị với phần tử a[1].  Chọn phần tử có khóa nhỏ nhất trong n-1 phần tử từ a[2] đến a[n] và hoán vị nó với a[2]…  Ở bước i, chọn phần tử có khóa nhỏ nhất trong n-i+1 phần tử từ a[i] đến a[n] và hoán vị nó với a[i].  Sau n-1 bước thì ta thu được mảng đã được sắp xếp.
  • 6. 3.1.2. Thuật toán Procedure SelectionSort; Var I,j,k: integer; min: Real; Begin for i:=1 to n-1 do Begin k:=1; min:= a[i]; for j:=i+1 to n do If a[j]<min then Begin min:= a[j]; k:=j; End; Swap(a[i],a[k]); End; End;
  • 7. 3.1.3. Độ phức tạp của thuật toán T(n)=O(n2) 3.1.4. Ví dụ Ban đầu: 5 6 2 2 10 12 9 10 9 3 Bước 1: 2| 6 5 2 10 12 9 10 9 3 Bước 2: 2 2| 5 6 10 12 9 10 9 3 Bước 3: 2 2 3| 6 10 12 9 10 9 5 Bước 4: 2 2 3 5| 10 12 9 10 9 6 Bước 5: 2 2 3 5 6| 12 9 10 9 10 Bước 6: 2 2 3 5 6 10 9 10 Bước 7: 2 2 3 5 6 9 9| 10 12 10 9| 12 Bước 8: 2 2 3 5 6 9 9 10| 12 10 Bước 9: 2 2 3 5 6 9 9 10 10 12
  • 8. 3.2. Sắp xếp chèn(Insretion Sort). 3.2.1. Tư tưởng  Lấy dần từng phần tử từ dãy nguồn, chèn vào dãy đích sao cho đảm bảo dãy đích có thứ tự.  Bước 1: Chèn phần tử a[2] vào danh sách đã có thứ tự a[1] sao cho a[1], a[2] là một danh sách có thứ tự.  Bước i: Chèn phần tử a[i+1] vào danh sách đã có thứ tự a[1], a[2],…a[i] sao cho a[1], a[2], …a[i+1] là một danh sách có thứ tự.
  • 9. 3.2. Thuật toán Procedure InsertionSort; Var i,j: Integer; Begin For i:=2 to n do Begin j:=i; While (j>1) anh (a[j]<a[j-1]) do Begin Swap (a[j],a[j-1]); j:=j-1; End; End; End;
  • 10. 3.3. Độ phức tạp T(n)=O(n2) 3.4. Ví dụ Ban đầu: 5 6 2 2 10 12 9 10 9 3 Bước 1: 5 6 Bước 2: 2 5 6 Bước 3: 2 2 5 6 Bước 4: 2 2 5 6 10 Bước 5: 2 2 5 6 10 12 Bước 6: 2 2 5 6 9 10 12 Bước 7: 2 2 5 6 9 10 10 12 Bước 8: 2 2 5 6 9 9 10 10 12 Bước 9: 2 2 3 5 6 9 9 10 10 12
  • 11. 3.3. Sắp xếp nổi bọt(Buble Sort) 3.3.1. Tư tưởng  Bước 1: Xét các phần tử từ a[n] đến a[2], với mổi phần tử a[j] so sánh nó vá khóa của phần tử a[j-1]. Nếu khóa của a[j] nhỏ hơn khóa của a[j-1] thì đổi chổ a[j] với a[j-1].  Bước 2: Xét các phần tử từ a[n] đến a[3], làm tương tự bước 1.  Bước i: Xét các phần tử từ a[n] đến a[i+1], làm tương tự  Sau n bước ta được dãy đã có thứ tự.
  • 12. 3.3.2. Thuật toán Procedure BubbleSort; Var i,j: integer; Begin 1. For i:=1 to n do 2. For j:=n downto i+1 do 3. if(a[j]<a[j-1]) then 4. Swap(a[j],a[j-1]); End;
  • 13. 3.3.3. Độ phức tạp T(n)=O(n) 3.3.4. Ví dụ Bắt đầu 4 5 6 2 2 10 12 9 10 3 Bước 1 2 5 6 2 3 10 12 9 9 Bước 2 Bước 3 Bước 2 2 5 6 3 9 10 12 10 2 2 3 5 6 9 9 10 10 2 2 3 5 6 9 9 10 12
  • 14. 3.4. Sắp xếp nhanh(Quick Sort) 3.4.1. Tư tưởng  Xét mảng A có các bản ghi từ a[1],…,a[n].  Chọn một thành phần của mảng làm chốt(Pivot). Phân hoạch mảng thành hai phần bằng cách chuyển tất cả các thành phần có khóa lớn hơn chốt sang phải chốt, các thành phần có khóa bé hơn hoặc bằng chốt sang trái chốt.  Sắp xếp độc lập hai mảng con a[1,…k-1], a[k+1,…n] bằng cách gọi đệ quy thuật toán trên.
  • 15. 3.4.2. Thuật toán Procedure QuickSort(i,j : integer); Var k: integer; Begin If(i<j) then Begin Partition(i,j,); QuickSort(i,k-1); QuickSort(k+1,j); End; End;
  • 16. Procedure Partition(i,j: integer; var R:real); Var L: integer; P: kiểu phần tử mảng; Begin P:=A[i]; L:=I; R:=j+1; Repeat L:=L+1 util (A[L] > p) or (L>j); Repeat R:=R-1 util A[R] <= p; While L < R do Begin Swap(A[L],A[R]); Repeat L:=L+1 util A[L] > p; Repeat R:=R-1 util A[R] <= p; End; Swap(A[i],A[R]); End;
  • 17. 3.4.3. Độ phức tạp T(n)=O(n) 3.4.4. Ví dụ  10 15 4 11 6 3 5 14 lấy chốt p=A[1]=10,L=1,R=9  Lần thứ nhất: Ta có L=2 và R=7 10 5 4 11 6 3 15 14  Khi L=4, R=6. 10 5 4 3 6 11 15 14  Khi L=6,R=5 6 5 4 3 10 11 15 14  Như vậy mảng A[1..8] đã được phân hoạch thành hai mảng con A[1..R-1] và A[R+1..8] tức A[1..4] và A[6..8]. Sau đó tiếp tục phân hoạch hai mảng con trên.
  • 18. 3.5. Sắp xếp vun đống(Heap Sort) 3.5.1. Tư tưởng  Heap là một cây nhị phân đầy đủ trái mà mổi nút được gán một giá trị khóa sao cho giá trị khóa ở nút cha bao giờ củng nhỏ hơn hoặc bằng giá trị khóa ở hai nut con. Do đó trong Heap ta có:  Nút gốc có khóa bé nhất  Dãy khóa nhận được khi đi theo một đường bất kì là dãy có thứ tự tăng dần
  • 19. 3.5.2. Thuật toán Procedure PUSHdOWN(a,b:integer); Var i,j: integer; ok: Boolean; Begin i:=a; ok:= false; 1. While (i<=b div 2) and not ok do Begin 2. If i=b div 2 then j:=2*i { chỉ có con trái } else if A[2*i] < A[2*i+1] then j:=2*i else j:=2*i+1; 3. If A[i] > A[j] then Begin Swap(A[i],A[j]); i:=j; End; else ok:=true; End; End;
  • 20. Sử dụng PUSHDOWN trong thủ tục HEAPSORT. Kết quả được mảng A[1…n] xếp giảm dần. Procedure HEAPSORT; Var i: integer; Begin 1. for i:=n div 2 downto 1 do PUSHDOWN(i,n); { biến đổi mảng A[1..n] thành mảng Heap} 2. for i:=n downto 2 do Begin Swap(A[1],A[i]); //đổi chổ gốc PUSHDOWN(1,i-1); //vun lại đống End; End;
  • 21. 3.5.3. Độ phức tạp T(n)=O(nlogn) 3.5.4. Ví dụ 2,3,5,6,4,1,5 Vun cây gốc A[3] được mảng A={2,3,7,6,4,1,5} Vun cây gốc A[2] được mảng A={2,6,7,3,4,1,5} Vun cây gốc A[1] được mảng A={7,6,5,3,4,1,2} Bây giờ A={7,6,5,3,4,1,2} đã là đống. Sắp xếp Đổi chổ A[1] với A[7]: A={2,6,5,3,4,1,7} và vun lại mảng A[1..6] được mảng A={6,4,5,3,2,1,7}. Đổi chổ A[1] với A[6]: A={1,4,5,3,2,6,7} và vun lại mảng A[1..5] được mảng A={5,4,2,3,1,6,7} Đổi chổ A[1] với A[5]: A={1,4,2,3,5,6,7} và vun lại mảng A[1..4] được mảng A={4,3,2,1,5,6,7} Đổi chổ A[1] với A[4]: A={1,3,2,4,5,6,7} vá vun lại mảng A[1..3] được mảng A={3,2,1,4,5,6,7} Đổi chổ A[1] với A[3]: A={2,1,3,4,5,6,7} và vun lại mảng A[1..2] được mảng A={2,1,3,4,5,6,7} Đổi chổ A[1] với A[2]: A={1,2,3,4,5,6,7} Mảng còn lại chỉ một phần tử quá trình sắp xếp đã xong.
  • 22. 4. Giới thiệu về ngôn ngữ Java 4.1. Java là gì? Java là ngôn ngữ lập trình hướng đối tượng( tựa C++) do Sun Microsystem đưa ra vào giữa thập niên 90. Chương trình viết bằng ngôn ngữ java có thể chạy trên bất kì hệ điều hành nào có cài máy ảo java( Java Vitual Machine).
  • 23. 4.2. Lịch sử phát triển  Ngôn ngữ lập trình Java do James Gosling và các công sự của Công ty Sun Microsystem phát triển.  Java được phát triển dựa trên C++ nhưng loại bỏ một số tính năng nguy hiểm của C++ và có khả năng chạy trên nhiều nền phần cứng khác nhau.  Java ra đời và được giới thiệu năm 1995.
  • 24. 4.3. Cấu trúc của Java Công nghệ Java phát triển mạnh mẽ nhờ vào "đại gia Sun Microsystem" cung cấp nhiều công cụ, thư viện lập trình phong phú hỗ trợ cho việc phát triển nhiều loại hình ứng dụng khác nhau cụ thể như: J2SE (Java 2 Standard Edition) hỗ trợ phát triển những ứng dụng đơn, ứng dụng clientserver; J2EE (Java 2 Enterprise Edition) hỗ trợ phát triển các ứng dụng thương mại, J2ME (Java 2 Micro Edition) hỗ trợ phát triển các ứng dụng trên các thiết bị di động, không dây, …
  • 27. Nhập dữ liệu cho chương trình.
  • 28. Kết quả sau khi sắp xếp.
  • 29. The end! Thank for your watching!