codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
/* Phát sinh ngẫu nhiên mảng n số nguyên và sắp xếp mảng này giảm dần bằng thuật toán Selection Sort . 553.cpp */ /* Ý Tưởng Của Thuật Toán : Xét dãy n phần tử a[0],a[1],a[2]...a[n-1] . Chọn trong dãy a[0],a[1],a[2]...a[n-1] ra phần tử có khỏa nhỏ nhất và hoán vị nó với a[0] . Chọn trong dãy a[1],a[2]...a[n-1] ra phần tử có khỏa nhỏ nhất và hoán vị nó với a[1] . Cứ tiếp tục như thế sau n-1 bước ta thu được danh sách có thứ tự. */ /* Tác giả: Nguyễn Việt Nam Sơn Trung tâm đào tạo tin học - Thiết kế phần mềm - Sơn Đẹp Trai: www.SonDepTrai.com Nguồn source code này Tôi viết vào năm 2012 lúc mới bắt đầu học lập trình C/C++ nên một số cách sẽ không được tối ưu - Bạn chỉ nên dùng trên tinh thần tham khảo thôi nhé. Mong giúp đỡ được Bạn trên con đường Học Lập Trình. TẤT CẢ VÌ SỰ THÀNH CÔNG CỦA BẠN */ #include<stdio.h> #include<conio.h> #include<Windows.h> #include<time.h> #define MAX 40 void PhatSinhNgauNhien(int a[]) { srand(time(0)); for(int i=0;i<MAX;i++) { a[i]=(rand()%61)-30; } } void XuatMang(int a[]) { for(int i=0;i<MAX;i++) { printf("%4d",a[i]); } } void HoanVi(int &x,int &y) { int temp=x; x=y; y=temp; } void SapXepGiamDanBangThuatToanSelectionSort(int a[]) { int min; for(int i=0;i<MAX-1;i++) { min=i; for(int j=i+1;j<MAX;j++) { if(a[j]>a[min]) { min=j; } } if(min!=i) { HoanVi(a[min],a[i]); } } } void main() { int a[MAX],tieptuc; quaylai:PhatSinhNgauNhien(a); printf("\n>>>>>>>>>>>>>>>Mang Phat Sinh Ngau Nhien Ban Dau La:<<<<<<<<<<<<<<<<<<<<<<<<\n"); XuatMang(a); printf("\n"); SapXepGiamDanBangThuatToanSelectionSort(a); printf("\n>>>>>>>>>>>>>>>Mang Sau Khi Sap Xep Giam Dan La:<<<<<<<\n"); XuatMang(a); printf("\n"); printf("\nBan muon tiep tuc thuc hien chuong trinh hay khong ? Neu co bam phim C,nguoc lai bam bat ky 1 phim nao khac de ket thuc!"); tieptuc=getch(); if(tieptuc=='c'||tieptuc=='C') { system("cls"); goto quaylai; } }
Private
[
?
]
Run code
Submit