:conan:
Mô tả: Nhập n, khởi tạo mảng gồm n số nguyên có giá trị từ 1 tới 9
in ra dãy chưa sắp xếp
thực hiện thuật toán sắp xếp và mô tả cách đổi giá trị
Code
[AH]
[/AH]
Muốn bước mô tả nhanh hay chậm có thể thay đổi giá trị trong hàm Sleep, đơn vị tính phần nghìn giây
Mô tả: Nhập n, khởi tạo mảng gồm n số nguyên có giá trị từ 1 tới 9
in ra dãy chưa sắp xếp
thực hiện thuật toán sắp xếp và mô tả cách đổi giá trị
Code
[AH]
Mã:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
#include<conio.h>
void gotoxy(int x, int y);
void sapxep(int a[], int n);
void taomang(int a[] , int n);
void xuatmang(int a[], int n);
void hoanvi(int &a , int &b , int c , int d);
int main()
{
int n, m;
scanf("%d",&n);
int a[n];
taomang(a,n);
xuatmang(a,n);
gotoxy(0,8);
xuatmang(a,n);
sapxep(a,n);
printf("\n\n\t\t\t ");
printf("Tac Gia:");
char *_="%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c";
int __=3**_+5;
printf("\n\n\t\t\t");
printf(_,__+59,__-32,__-19,__-4,__-21,__-40,__+17,__-7,__-21,__-44,__-19,__-17,__-9,__-15,__-2,__+58);
printf("\n\n");
getch();
}
void taomang(int a[] , int n)
{
srand((int)time(NULL));
for(int i = 0 ; i < n ; i ++)
a[i]=rand() % 9 + 1 ;
}
void xuatmang(int a[], int n)
{
for(int i = 0 ; i < n ; i ++)
printf("%d",a[i]);
}
void sapxep(int a[], int n)
{
for (int i = 0 ; i < n-1 ; i ++)
for ( int j = i+1 ; j < n ; j ++)
if ( a[i] > a[j] )
hoanvi(a[i],a[j],i,j);
printf("\n\nDone!!!");
}
void gotoxy(int x, int y)
{
static HANDLE h = NULL;
if(!h)
h = GetStdHandle(STD_OUTPUT_HANDLE);
COORD c = {x,y};
SetConsoleCursorPosition(h,c);
}
void hoanvi(int &a , int &b , int c, int d)
{
int tmp,tmp1,tmp2,tmp3;
for(int i = 7 ; i >= 4 ; i-- )
{
Sleep(50);
gotoxy(c,i+1);
printf(" ");
gotoxy(c,i);
printf("%d",a);
tmp = i;
}
for(int i = 1 ; i <= d-c ; i ++)
{
Sleep(50);
gotoxy(c+i-1,tmp);
printf(" ");
gotoxy(c+i,tmp);
printf("%d",a);
tmp1 = c+i;
}
for(int i = 1 ; i <= 4 ; i ++)
{
Sleep(50);
gotoxy(tmp1,tmp+i-1);
printf(" ");
gotoxy(tmp1,tmp+i);
printf("%d",a);
gotoxy(d,8+i-1);
printf(" ");
gotoxy(d,8+i);
printf("%d",b);
tmp2 = 8+i;
}
for(int i = 1 ; i <= d-c ; i ++)
{
Sleep(50);
gotoxy(d-i+1,tmp2);
printf(" ");
gotoxy(d-i,tmp2);
printf("%d",b);
tmp3 = d-i;
}
for(int i = tmp2 ; i >= 8 ; i-- )
{
Sleep(50);
if(i != tmp2)
{
gotoxy(tmp3,i+1);
printf(" ");
}
gotoxy(tmp3,i);
printf("%d",b);
}
int temp = a;
a = b;
b = temp;
}
Muốn bước mô tả nhanh hay chậm có thể thay đổi giá trị trong hàm Sleep, đơn vị tính phần nghìn giây
Mã:
Sleep()