Viết chương trình nhập vào mảng số nguyên một chiều có n phần tử, sắp xếp mảng theo chiều tăng dần bằng thuật toán sắp xếp nổi bọt, sắp xếp nhanh, hiển thị danh sách vừa sắp xếp. Các bác xem sai ở đâu với.
#include "stdio.h"
#include "conio.h"
void nhap (int a[], int n)
{ int i;
printf("Nhap so phan tu cua mang: ", n);
scanf("%d", &n);
for (i=0; i<n; i++)
{
printf("a[%d]=: ", i);
scanf("%d", a[i]);
}
}
void xuat(int a[],int n)
{
int i;
printf("\nDay so sau khi sap xep");
for(i=0; i<n; i++)
printf("%3d, ",a[i]);
}
void sxnb(int a[], int n)
{
int i, j, tg;
for(i = 0; i<n-1; i++)
for(j =n-1; j>i;j--)
if(a[j]>a[j-1])
{
tg=a[j];
a[j]=a[j-1];
a[j-1]=tg;
}
}
void sxn(int a[], int left, int right)
{
int i = left, j = right, tg;
int pivot = a[(left + right) / 2];
{ while (a[i] < pivot && i < right) i++; while (a[j] > pivot && j > left) j--;
if (i <= j)
{
a[i]=tg;
tg=a[j];
a[j]=tg;
i++;
j--;
}
}while (i <= j);
if (left < j) sxn(a, left, j);
if (i < right) sxn(a, i, right);
}
main()
{
int n,chon;
int a[100];
lai: printf("Menu\n====================================\n1.Sap xep nhanh\n2.Sap xep noi bot");
printf("\nMoi ban chon:");
scanf("%d",&chon);
switch(chon)
{
case 1:
{
nhap(a, &n);
sxnb(a, n);
xuat(a, n);
break;
}
case 2:
{
nhap(a, &n);
sxn(a, 0, n-1);
xuat(a, n);
break;
}
}
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?