Vận dụng trang 130 SGK Tin học 11 Cánh diều
Em hãy thực hiện các công việc sau:
a) Sửa lại thủ tục phân đoạn đề có hàm quickSort_ down sắp xếp theo thứ tự giảm dần.
Gợi ý: Sửa đối phép so sánh trong câu lệnh if a[3] <= pivot: thành if a[3]} >= pivot:
b) Tiếp tục sửa lại để có hàm quickSort_tuple down sắp xếp danh sách các cặp. ví dụ (tên học sinh, điểm môn học) theo điệm môn học giảm dần.
Gợi ý: Sửa đổi đầu vào thành danh sách các cặp (tên học sinh, điểm môn học) và thực hiện so sánh theo điểm môn học.
Hướng dẫn giải chi tiết Vận dụng
a) Gợi ý:
void swap(int *a,int *b){
int temp=*a;
*a=*b;
*b=temp;
}
void bubblesort(int arr[],int n){
for(int i=0; i<n-1; i++){
for(int j=0; j<n-i-1; j++){
if(arr[j]>arr[j+1]){
swap(&arr[j],&arr[j+1]);
}
}
}
}
b) Gợi ý:
void quickSort(int a[], int l, int r){
int p = a[(l+r)/2];
int i = l, j = r;
while (i < j){
while (a[i] < p){
i++;
}
while (a[j] > p){
j--;
}
if (i <= j){
int temp = a[i];
a[i] = a[j];
a[j] = temp;
i++;
j--;
}
}
if (i < r){
quickSort(a, i, r);
}
if (l < j){
quickSort(a, l, j);
}
}
-- Mod Tin Học 11 HỌC247
Bài tập SGK khác
Chưa có câu hỏi nào. Em hãy trở thành người đầu tiên đặt câu hỏi.

