Bố khỉ,ông kia đang hỏi C ông này lôi ngôn ngữ khác vô thì biết sai chỗ nào mà sửa.
[=========> Bổ sung bài viết <=========]
Code:
#include <stdio.h>
#include <conio.h>
#define MAX 100
void swap(int *x,int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
int getkeyposition(int i,int j )
{
return((i+j) /2);
}
void qsort(int list[],int m,int n)
{
int key,i,j,k;
if( m < n)
{
k = getkeyposition(m,n);
swap(&list[m],&list[k]);
key = list[m];
i = m+1;
j = n;
while(i <= j)
{
while((i <= n) && (list[i] <= key))
i++;
while((j >= m) && (list[j] > key))
j--;
if( i < j)
swap(&list[i],&list[j]);
}
swap(&list[m],&list[j]);
qsort(list,m,j-1);
qsort(list,j+1,n);
}
}
void readlist(int list[],int n)
{
int i;
printf("Nhap cac phan tu cho mang\n");
for(i=0;i<n;i++)
scanf("%d",&list[i]);
fflush(stdin);
}
void printlist(int list[],int n)
{
int i;
printf("Cac phan tu trong mang: \n");
for(i=0;i<n;i++)
printf("%d\t",list[i]);
printf("\n");
}
void main()
{
int list[MAX], n;
printf("Nhap so phan tu cho mang, lon nhat = 100\n");
scanf("%d",&n);
readlist(list,n);
printf("Cac phan tu da nhap:\n");
printlist(list,n);
qsort(list,0,n-1);
printf("\nCac phan tu da sap xep:\n");
printlist(list,n);
getch();
}
Bookmarks