Upload files to "DS/C/Lab/Week4"

This commit is contained in:
Aadit Agrawal 2024-08-12 22:44:18 +05:30
parent 7ac01bf45d
commit 931c11992e

View File

@ -0,0 +1,40 @@
#include <stdio.h>
#define MAX_TERMS 100
#define MAX_COL 100
struct Element {
int row, col, value;
};
void fastTranspose(struct Element *a, struct Element *b, int m, int n, int num) {
int rowTerms[MAX_COL] = {0};
int rowStart[MAX_COL] = {0};
int i, j;
for (i = 0; i < num; i++)
rowTerms[a[i].col]++;
for (i = 1; i < n; i++)
rowStart[i] = rowStart[i-1] + rowTerms[i-1];
for (i = 0; i < num; i++) {
j = rowStart[a[i].col]++;
b[j].row = a[i].col;
b[j].col = a[i].row;
b[j].value = a[i].value;
}
}
int main() {
struct Element a[MAX_TERMS] = {{0, 1, 3}, {1, 2, 5}, {2, 0, 2}, {3, 1, 4}};
struct Element b[MAX_TERMS];
int m = 4, n = 3, num = 4;
fastTranspose(a, b, m, n, num);
for (int i = 0; i < num; i++)
printf("%d %d %d\n", b[i].row, b[i].col, b[i].value);
return 0;
}