30/09/2018, 22:12
Chạy đc mà đến chổ gọi hàm, thì nó không thực hiện ra kết quả..chương trình k báo lỗi gì hết
#include<stdio.h>
#include<conio.h>
int xuly(int A[],int left,int right)
{
int x=A[left];
int i=left+1;
int j=right;
int t;
do
{
while((i<=j)&(A[i]<=x))
i++;
while ((i<=j)&(A[j]>x))
j--;
if(i<j)
{
t=A[i];
A[i]=A[j];
A[j]=t;
i++;
j--;
}
}while(i<=j);
t=A[left];
A[left]=A[j];
A[j]=t;
return j;
}
void quicksort(int A[],int left, int right)
{
int k;
if (left < right)
{
k=xuly(A,left,right);
quicksort(A,left,k-1);
quicksort(A,k+1,right);
}
}
void nhapmang(int A[],int n)
{
for (int i=0;i<n;i++)
{
printf("nhap mang thu
");
scanf("%d", &A[i]);
}
}
void xuatmang(int A[], int n)
{
for (int i=0;i<n;i++)
{
printf("%d ", A[i]);
}
}
int main()
{
int n,A[100],left,right;
printf("nhap gia tri n
");
scanf("%d", &n);
nhapmang(A,n);
printf("gia tri day trc khi sap xep
");
xuatmang(A,n);
quicksort(A,left,right);
printf("gia tri sau khi sap xep
");
xuatmang(A,n);
}
Bài liên quan
Bạn vui lòng đặt lại tiêu đề, giải thích xem code của bạn đang làm gì. Và cho code vào markdown block nhé
code minh sap xep kieu quick sort, minh moi tham gia day nhau hoc nen k biet chinh
Dùng công cụ tìm kiếm của diễn đàn search:“markdown” là ra bài hướng dẫn.
Chú ý khi hỏi thì nêu sai ra sao: báo lỗi, hiện console nhưng không chạy, sai kết quả,… và viết tiếng việt có dấu.
left, right bạn khai báo nhưng chưa cấp giá trị gì cả.
quicksort(A,0,n-1);
Mình comment inline bạn nhé. Chúc bạn vui…
Khai báo biến cục bộ thì biến sẽ mang giá trị rác (tùy vào ô nhớ được cấp phát)
Biến toàn cục thì mới được mặc định == 0 chứ nhỉ ?
đã post lên đây thì đề nghị bác comem vô code lun nha. để ng ta còn hỉu bác đang làm cái gì
Java thì còn chắc chứ còn c thì cứ phải build ra mới biết được ấy.
Giá trị của
left
vàright
đâu?Truyền vào đây
Thì làm sao nó biết là gì
Sửa lại: khởi tạo giá trị phù hợp cho
left, right
, ví dụ:left = 0; right = n;
minh build no k co lỗi, mà chạy không đc…đến cái gọi hàm thì nó dừng ct rồi ~~
mình cũng thử lại rồi,mà vẫn không đc~~
This post was flagged by the community and is temporarily hidden.
Chỉ cần sửa trong
int main()
hàmquicksort(A,left,right)
=>quicksort(A,0,n-1)
hoặc sau hàmnhapmang(A,n);
gán lạileft=0, right=n-1;
là chạy ok (tui test thử rồi)