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