Sắp xếp mảng dùng quick_sort

mn xem giúp em bài này với, hàm quick_sort nó không chạy.

using namespace std;
void init(int a[], int n){
	cout<<"\n Nhap gtri: ";
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
}
void in(int a[], int n){
	for(int i=0;i<n;i++){
		cout<<" "<<a[i];
	}
}
void swap(int &a, int &b){
	int temp=a;
	a=b;
	b=temp;
}
void partion(int a[], int l, int r){
	int i=l,j=r;
	int mid=a[(l+r)/2];
	while(i<=j){
		while(a[i] < mid) i++;
		while(a[j] > mid) j--;
		if(i<=j) {
			swap(a[i], a[j]);
			i++;
			i--;
		}
		
	}
	if(l<j) partion(a,l,j);
	if(i<r)  partion(a,i,r);
}
void quick_sort(int a[], int n){
	partion (a,0,n-1);
}
int main(){
	int a[100], n;
	cin>>n;
	init(a,n);	in(a,n);
	quick_sort(a,n); in(a,n);
}

Em cảm ơn ạ.

bạn truyền dữ liệu bằng tham chiếu, chứ truyền tham trị thì nó không chạy đc đâu

This post was flagged by the community and is temporarily hidden.

debug lại báo sai ở dòng int i=l,j=r;
t k hiểu!!!

Xem lại biến sau swap

tham số thực trong lời gọi hàm sai nè bạn

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?