Arkanjo
0.1
A tool for find code duplicated functions in codebases
Loading...
Searching...
No Matches
code.c
Go to the documentation of this file.
1
#include <stdio.h>
2
#include <stdlib.h>
3
4
//the function below will compute the vector permutation p
5
//which returns a list of the index of elements sorted by distance of median
6
//I do not care about ties.
7
8
9
int
*
sorted_by_distance_to_median
(
int
v
[],
int
n
){
10
11
int
*
v_sorted
= (
int
*)malloc(
n
*
sizeof
(
int
));
12
int
*
dist_to_median
= (
int
*)malloc(
n
*
sizeof
(
int
));
13
int
*
p
= (
int
*)malloc(
n
*
sizeof
(
int
));
14
int
median
;
15
16
for
(
int
i = 0; i <
n
; i++){
17
v_sorted
[i] = i;
18
}
19
20
for
(
int
i = 0; i <
n
; i++){
21
for
(
int
j = 0; j <
n
-1; j++){
22
if
(
v
[
v_sorted
[j]] >
v
[
v_sorted
[j+1]]){
23
int
aux =
v_sorted
[j];
24
v_sorted
[j] =
v_sorted
[j+1];
25
v_sorted
[j+1] = aux;
26
}
27
}
28
}
29
30
median
=
v
[
v_sorted
[
n
/2]];
31
32
for
(
int
i = 0; i <
n
; i++){
33
dist_to_median
[i] =
v
[i]-
median
;
34
if
(
dist_to_median
[i] < 0){
35
dist_to_median
[i] *= -1;
36
}
37
}
38
39
for
(
int
i = 0; i <
n
; i++){
40
p
[i] = i;
41
}
42
43
for
(
int
i = 0; i <
n
; i++){
44
for
(
int
j = 0; j <
n
-1; j++){
45
if
(
dist_to_median
[
p
[j]] >
dist_to_median
[
p
[j+1]]){
46
int
aux =
p
[j];
47
p
[j] =
p
[j+1];
48
p
[j+1] = aux;
49
}
50
}
51
}
52
53
free
(
v_sorted
);
54
free
(
dist_to_median
);
55
return
p
;
56
}
57
58
int
main
(
int
argc,
char
*argv[]){
59
60
int
v
[6];
61
v
[0] = 5;
62
v
[1] = 3;
63
v
[2] = 4;
64
v
[3] = 1;
65
v
[4] = 2;
66
v
[5] = 1;
67
int
n
= 6;
68
69
int
*
p
=
sorted_by_distance_to_median
(
v
,
n
);
70
71
for
(
int
i = 0; i <
n
; i++){
72
printf
(
"%d "
,
p
[i]);
73
}
74
printf
(
"\n"
);
75
76
free
(
p
);
77
return
0;
78
}
free
free(p)
printf
printf("\n")
n
int n
Definition
main.c:10
v
v[0]
Definition
main.c:4
p
int * p
Definition
main.c:12
dist_to_median
int * dist_to_median
Definition
sorted_by_distance_to_median.c:4
median
int median
Definition
sorted_by_distance_to_median.c:6
v_sorted
return v_sorted
Definition
compute_v_sorted.c:17
main
int main(int argc, char *argv[])
Definition
code.c:40
sorted_by_distance_to_median
int * sorted_by_distance_to_median(int v[], int n)
Definition
code.c:9
tests
e2e
codebase
test_multiple_file_similiar_function
code.c
Generated by
1.12.0