Một số bài tập thời còn đi học, dọn ổ backup lên blog :>>
----------------
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int mang[MAX];
void in_mang(int *mang)
{
int i;
for (i=0; i<MAX; i++)
printf("%d ", mang[i]);
}
void sort(int l, int r)
{
int i, j, x, w;
i = l;
j = r;
x = mang[(l+r)/2];
do {
while (mang[i] < x)
i++;
while (x < mang[j])
j--;
if (i <= j)
{
w = mang[i];
mang[i] = mang[j];
mang[j] = w;
i++;
j--;
}
} while (i<=j);
if (l < j)
sort(l, j);
if (i < r)
sort(i, r);
}
void quicksort()
{
sort(0, MAX-1);
}
void main()
{
int i;
randomize();
for (i=0; i<MAX; i++)
mang[i] = random(100);
printf("\nTruoc khi sap : ");
in_mang(mang);
quicksort();
printf("\nSau khi sap : ");
in_mang(mang);
getch();
}
----------------
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int mang[MAX];
void in_mang(int *mang)
{
int i;
for (i=0; i<MAX; i++)
printf("%d ", mang[i]);
}
void sort(int l, int r)
{
int i, j, x, w;
i = l;
j = r;
x = mang[(l+r)/2];
do {
while (mang[i] < x)
i++;
while (x < mang[j])
j--;
if (i <= j)
{
w = mang[i];
mang[i] = mang[j];
mang[j] = w;
i++;
j--;
}
} while (i<=j);
if (l < j)
sort(l, j);
if (i < r)
sort(i, r);
}
void quicksort()
{
sort(0, MAX-1);
}
void main()
{
int i;
randomize();
for (i=0; i<MAX; i++)
mang[i] = random(100);
printf("\nTruoc khi sap : ");
in_mang(mang);
quicksort();
printf("\nSau khi sap : ");
in_mang(mang);
getch();
}
----------------
No comments:
Post a Comment