Arkanjo 0.1
A tool for find code duplicated functions in codebases
Loading...
Searching...
No Matches
test_same_file_big_function_against_small.c
Go to the documentation of this file.
1#include <stdio.h>
2#include <stdlib.h>
3
4//the two functions 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//big function
9
11
12 #define {djfasuhfhs fddfkjdjfk jkdsklfjalksd \
13 fdsajfdsjkafjkl // fdsajfkldsaf /* \
14 fsadjfkaksjdfjk
15
16 // fdjsff{ weh /* fsdhusgh wekew */ fsajdfjsad // \
17 fdsajfjkdsf " fdsafdsjakfj */ /* asdfjkdsakf //\
18 fsdfjdskjkf // " sjdfkjsd '"'fkljasdf #define
19
20 /*fsd fj }// sadf j #define sdjafkjds "f jdsfj "fsdajkjf '"' fa
21 sdjafkljdsaj h*/
22
23 char D = '"';
24
25 printf("%d, dsfj hushu \" /**/ #define // fdahu ",3);
26
27 int *v_sorted = (int*)malloc(n*sizeof(int));
28 int *dist_to_median = (int*)malloc(n*sizeof(int));
29 int *p = (int*)malloc(n*sizeof(int));
30 int median;
31
32 for(int i = 0; i < n; i++){
33 v_sorted[i] = i;
34 }
35
36 for(int i = 0; i < n; i++){
37 for(int j = 0; j < n-1; j++){
38 if(v[v_sorted[j]] > v[v_sorted[j+1]]){
39 int aux = v_sorted[j];
40 v_sorted[j] = v_sorted[j+1];
41 v_sorted[j+1] = aux;
42 }
43 }
44 }
45
46 median = v[v_sorted[n/2]];
47
48 for(int i = 0; i < n; i++){
49 dist_to_median[i] = v[i]-median;
50 if(dist_to_median[i] < 0){
51 dist_to_median[i] *= -1;
52 }
53 }
54
55 for(int i = 0; i < n; i++){
56 p[i] = i;
57 }
58
59 for(int i = 0; i < n; i++){
60 for(int j = 0; j < n-1; j++){
61 if(dist_to_median[p[j]] > dist_to_median[p[j+1]]){
62 int aux = p[j];
63 p[j] = p[j+1];
64 p[j+1] = aux;
65 }
66 }
67 }
68
71 return p;
72}
73
74
75//break in small functions
76
77int* compute_v_sorted(int v[], int n){
78 int *v_sorted = (int*)malloc(n*sizeof(int));
79
80 for(int i = 0; i < n; i++){
81 v_sorted[i] = i;
82 }
83
84 for(int i = 0; i < n; i++){
85 for(int j = 0; j < n-1; j++){
86 if(v[v_sorted[j]] > v[v_sorted[j+1]]){
87 int aux = v_sorted[j];
88 v_sorted[j] = v_sorted[j+1];
89 v_sorted[j+1] = aux;
90 }
91 }
92 }
93 return v_sorted;
94}
95
96int *compute_dist_to_median(int v[], int n, int median){
97 int *dist_to_median = (int*)malloc(n*sizeof(int));
98
99 for(int i = 0; i < n; i++){
100 dist_to_median[i] = v[i]-median;
101 if(dist_to_median[i] < 0){
102 dist_to_median[i] *= -1;
103 }
104 }
105 return dist_to_median;
106}
107
108int *compute_p(int *dist_to_median, int n){
109 int *p = (int*)malloc(n*sizeof(int));
110
111 for(int i = 0; i < n; i++){
112 p[i] = i;
113 }
114
115 for(int i = 0; i < n; i++){
116 for(int j = 0; j < n-1; j++){
117 if(dist_to_median[p[j]] > dist_to_median[p[j+1]]){
118 int aux = p[j];
119 p[j] = p[j+1];
120 p[j+1] = aux;
121 }
122 }
123 }
124 return p;
125}
126
127int *sorted_by_distance_of_median(int v[], int n){
128 int *v_sorted;
129 int *dist_to_median;
130 int *p;
131 int median;
132
134 median = v[v_sorted[n/2]];
137
138 free(v_sorted);
140 return p;
141}
142
143int main(int argc, char *argv[]){
144
145 int v[6];
146 v[0] = 5;
147 v[1] = 3;
148 v[2] = 4;
149 v[3] = 1;
150 v[4] = 2;
151 v[5] = 1;
152 int n = 6;
153
156
157
158 for(int i = 0; i < n; i++){
159 printf("%d ",p1[i]);
160 }
161 printf("\n");
162
163 for(int i = 0; i < n; i++){
164 printf("%d ",p2[i]);
165 }
166 printf("\n");
167
168 free(p1);
169 free(p2);
170 return 0;
171}
free(p)
printf("\n")
int n
Definition main.c:10
v[0]
Definition main.c:4
int * p
Definition main.c:12
int * dist_to_median
return v_sorted
int D
Definition main.c:11
int * p2
Definition main.c:13
int * p1
Definition main.c:12
int main(int argc, char *argv[])
int * compute_dist_to_median(int v[], int n, int median)
Definition small.c:25
int * compute_v_sorted(int v[], int n)
Definition small.c:6
int * compute_p(int *dist_to_median, int n)
Definition small.c:37
int * sorted_by_distance_of_median(int v[], int n)
Definition source.c:9
int * sorted_by_distance_to_median(int v[], int n)