Giải thuật sắp xếp

không biết là em có thể sử dụng thuật toán này cho việc sắp xếp theo thứ tự giảm dần được không ạ

public static void QuickSort(int A[], int left, int right) {
	int i = left, j = right;
	int k = (left + right) / 2;
	int x = A[k];
	int temp;

	do {
	while (A[i] < x) i++;
	while (A[j] > x) j--;
	if (i <= j) {
	temp = A[i];
	A[i] = A[j];
	A[j] = temp;
	i++; j--;
	}
	} while (i < j);
	if (left < j) QuickSort(A, left, j);
	if (i < right) QuickSort(A, i, right);
	}

static void printArray(int arr[]) 
{ 
	int n = arr.length; 
	for (int i=0; i<n; ++i) 
		System.out.print(arr[i]+" "); 
	System.out.println(); 
} 

public static void main(String args[]) 
{ 
	int arr[] = {10, 7, 8, 9, 1, 5}; 
	int n = arr.length; 

	QuickSort(arr,0 ,n-1);
	System.out.println("sorted array"); 
	printArray(arr); 
} 

Chỗ so với chốt bạn đổi dấu đi là được :smiley:

8 Likes

chốt gì vậy bạn @@
mình mới học chưa lâu nên chưa hiểu rõ mấy từ này lắm

Code mẫu thì chia mảng thành nửa bên trái là \leq, nửa bên phải là \geq sau một vòng lặp nên nó là xếp tăng dần :smiley:

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