diff options
Diffstat (limited to 'SD-VBS/common/c/iSortIndices.c')
-rw-r--r-- | SD-VBS/common/c/iSortIndices.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/SD-VBS/common/c/iSortIndices.c b/SD-VBS/common/c/iSortIndices.c new file mode 100644 index 0000000..5939c32 --- /dev/null +++ b/SD-VBS/common/c/iSortIndices.c | |||
@@ -0,0 +1,47 @@ | |||
1 | /******************************** | ||
2 | Author: Sravanthi Kota Venkata | ||
3 | ********************************/ | ||
4 | |||
5 | #include "sdvbs_common.h" | ||
6 | |||
7 | I2D* iSortIndices(I2D* in, int dim) | ||
8 | { | ||
9 | I2D *sorted; | ||
10 | int rows, cols, i, j, k, temp; | ||
11 | I2D *ind; | ||
12 | |||
13 | rows = in->height; | ||
14 | cols = in->width; | ||
15 | |||
16 | sorted = iDeepCopy(in); | ||
17 | ind = iMallocHandle(rows, cols); | ||
18 | |||
19 | for(i=0; i<cols; i++) | ||
20 | for(j=0; j<rows; j++) | ||
21 | subsref(ind,j,i) = 0; | ||
22 | |||
23 | for(k=0; k<cols; k++) | ||
24 | { | ||
25 | for(i=0; i<rows; i++) | ||
26 | { | ||
27 | int localMax = subsref(in,i,k); | ||
28 | int localIndex = i; | ||
29 | subsref(ind,i,k) = i; | ||
30 | for(j=0; j<rows; j++) | ||
31 | { | ||
32 | if(localMax < subsref(in,j,k)) | ||
33 | { | ||
34 | subsref(ind,i,k) = j; | ||
35 | localMax = subsref(in,j,k); | ||
36 | localIndex = j; | ||
37 | } | ||
38 | } | ||
39 | subsref(in,localIndex,k) = 0; | ||
40 | } | ||
41 | } | ||
42 | |||
43 | return ind; | ||
44 | } | ||
45 | |||
46 | |||
47 | |||