Как рекурсивная пузырьковая сортировка x-y координата ассоциируется с x
#include <stdio.h> #include <stdbool.h> struct Points { int X, Y; }; void swap(int *a, int *b) { int t; t = *b; *b = *a; *a = t; } void sort(struct Points a[], int n) { //You can adapt any of the insertion / selection / bubble sort if (n == 1) return; for (int i=0; i<n-1; i++) if (a[i].X > a[i+1].X) swap(&a[i].X, &a[i+1].X); //sort(&a[0], n); } void sort(struct Points a[], int n); int main() { int i; struct Points ptArray[5] = { {11, 34}, {5, 73}, {11, 19}, {13, 5}, {11, 68}}; sort(ptArray, 5); //The output should match the order given in question for (i = 0; i < 5; i++){ printf("(%d, %d)\n", ptArray[i].X, ptArray[i].Y); } return 0; }
Что я уже пробовал:
как переместить Y вместе с X, когда X начнет индексирование
void sort(struct Points a[], int n) { if (n == 1) return; for (int i=0; i<n-1; i++) if (a[i].X > a[i+1].X) swap(&a[i].X, &a[i+1].X); //sort(&a[0], n); }
Пример Ввода-Вывода
void sort(struct Points a[], int n); int main() { int i; struct Points ptArray[5] = { {11, 34}, {5, 73}, {11, 19}, {13, 5}, {11, 68}}; sort(ptArray, 5); //The output should match the order given in question for (i = 0; i < 5; i++){ printf("(%d, %d)\n", ptArray[i].X, ptArray[i].Y); } return 0; }
Выход:
{5,73} , {11,19}, {11,34}, {11,68}, {13,5}
Patrice T
Покажите пример входных данных и желаемый результат.