forked from menault/2026_TD3_DEV51_Qualite_Algo
F1 POUR L4INSTANT
This commit is contained in:
@@ -71,18 +71,17 @@ Transaction *generer_transactions(int n)
|
|||||||
/* ------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------ */
|
||||||
|
|
||||||
/* F1 : trie les transactions par montant croissant, puis par id */
|
/* F1 : trie les transactions par montant croissant, puis par id */
|
||||||
|
static int cmp_montant_id(const void *a, const void *b)
|
||||||
|
{
|
||||||
|
const Transaction *x = a, *y = b;
|
||||||
|
if (x->montant != y->montant)
|
||||||
|
return (x->montant > y->montant) - (x->montant < y->montant);
|
||||||
|
return (x->id > y->id) - (x->id < y->id);
|
||||||
|
}
|
||||||
|
|
||||||
void trier_par_montant(Transaction *t, int n)
|
void trier_par_montant(Transaction *t, int n)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < n - 1; i++) {
|
qsort(t, n, sizeof(Transaction), cmp_montant_id);
|
||||||
for (int j = 0; j < n - 1 - i; j++) {
|
|
||||||
if (t[j].montant > t[j + 1].montant ||
|
|
||||||
(t[j].montant == t[j + 1].montant && t[j].id > t[j + 1].id)) {
|
|
||||||
Transaction tmp = t[j];
|
|
||||||
t[j] = t[j + 1];
|
|
||||||
t[j + 1] = tmp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* F2 : nombre de clients ayant au moins une transaction */
|
/* F2 : nombre de clients ayant au moins une transaction */
|
||||||
|
|||||||
BIN
Binary file not shown.
@@ -0,0 +1,220 @@
|
|||||||
|
Flat profile:
|
||||||
|
|
||||||
|
Each sample counts as 0.01 seconds.
|
||||||
|
% cumulative self self total
|
||||||
|
time seconds seconds calls ms/call ms/call name
|
||||||
|
40.08 1.85 1.85 30000 0.06 0.06 rechercher_par_id
|
||||||
|
18.63 2.71 0.86 1 860.74 860.74 nb_paires_opposees
|
||||||
|
16.46 3.47 0.76 1 760.65 760.65 nb_facons_rendre
|
||||||
|
9.32 3.90 0.43 6017 0.07 0.07 longueur
|
||||||
|
7.37 4.24 0.34 1 340.29 340.29 meilleure_periode
|
||||||
|
2.82 4.37 0.13 1 130.11 130.11 total_par_client
|
||||||
|
2.60 4.49 0.12 1 120.10 120.10 nb_clients_distincts
|
||||||
|
1.52 4.56 0.07 _init
|
||||||
|
1.30 4.62 0.06 1 60.05 60.05 total_par_jour
|
||||||
|
0.00 4.62 0.00 149998 0.00 0.00 alea
|
||||||
|
0.00 4.62 0.00 30000 0.00 0.00 categorie
|
||||||
|
0.00 4.62 0.00 6017 0.00 0.07 ajouter_ligne
|
||||||
|
0.00 4.62 0.00 1 0.00 0.00 empreinte
|
||||||
|
0.00 4.62 0.00 1 0.00 0.00 generer_transactions
|
||||||
|
0.00 4.62 0.00 1 0.00 0.00 trier_par_montant
|
||||||
|
|
||||||
|
% the percentage of the total running time of the
|
||||||
|
time program used by this function.
|
||||||
|
|
||||||
|
cumulative a running sum of the number of seconds accounted
|
||||||
|
seconds for by this function and those listed above it.
|
||||||
|
|
||||||
|
self the number of seconds accounted for by this
|
||||||
|
seconds function alone. This is the major sort for this
|
||||||
|
listing.
|
||||||
|
|
||||||
|
calls the number of times this function was invoked, if
|
||||||
|
this function is profiled, else blank.
|
||||||
|
|
||||||
|
self the average number of milliseconds spent in this
|
||||||
|
ms/call function per call, if this function is profiled,
|
||||||
|
else blank.
|
||||||
|
|
||||||
|
total the average number of milliseconds spent in this
|
||||||
|
ms/call function and its descendents per call, if this
|
||||||
|
function is profiled, else blank.
|
||||||
|
|
||||||
|
name the name of the function. This is the minor sort
|
||||||
|
for this listing. The index shows the location of
|
||||||
|
the function in the gprof listing. If the index is
|
||||||
|
in parenthesis it shows where it would appear in
|
||||||
|
the gprof listing if it were to be printed.
|
||||||
|
|
||||||
|
Copyright (C) 2012-2025 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
Copying and distribution of this file, with or without modification,
|
||||||
|
are permitted in any medium without royalty provided the copyright
|
||||||
|
notice and this notice are preserved.
|
||||||
|
|
||||||
|
Call graph (explanation follows)
|
||||||
|
|
||||||
|
|
||||||
|
granularity: each sample hit covers 2 byte(s) for 0.22% of 4.62 seconds
|
||||||
|
|
||||||
|
index % time self children called name
|
||||||
|
<spontaneous>
|
||||||
|
[1] 98.5 0.00 4.55 main [1]
|
||||||
|
1.85 0.00 30000/30000 rechercher_par_id [2]
|
||||||
|
0.86 0.00 1/1 nb_paires_opposees [3]
|
||||||
|
0.76 0.00 1/1 nb_facons_rendre [4]
|
||||||
|
0.00 0.43 6017/6017 ajouter_ligne [5]
|
||||||
|
0.34 0.00 1/1 meilleure_periode [7]
|
||||||
|
0.13 0.00 1/1 total_par_client [8]
|
||||||
|
0.12 0.00 1/1 nb_clients_distincts [9]
|
||||||
|
0.06 0.00 1/1 total_par_jour [11]
|
||||||
|
0.00 0.00 30000/30000 categorie [13]
|
||||||
|
0.00 0.00 1/1 generer_transactions [15]
|
||||||
|
0.00 0.00 1/1 trier_par_montant [16]
|
||||||
|
0.00 0.00 1/1 empreinte [14]
|
||||||
|
-----------------------------------------------
|
||||||
|
1.85 0.00 30000/30000 main [1]
|
||||||
|
[2] 40.0 1.85 0.00 30000 rechercher_par_id [2]
|
||||||
|
-----------------------------------------------
|
||||||
|
0.86 0.00 1/1 main [1]
|
||||||
|
[3] 18.6 0.86 0.00 1 nb_paires_opposees [3]
|
||||||
|
-----------------------------------------------
|
||||||
|
266723738 nb_facons_rendre [4]
|
||||||
|
0.76 0.00 1/1 main [1]
|
||||||
|
[4] 16.5 0.76 0.00 1+266723738 nb_facons_rendre [4]
|
||||||
|
266723738 nb_facons_rendre [4]
|
||||||
|
-----------------------------------------------
|
||||||
|
0.00 0.43 6017/6017 main [1]
|
||||||
|
[5] 9.3 0.00 0.43 6017 ajouter_ligne [5]
|
||||||
|
0.43 0.00 6017/6017 longueur [6]
|
||||||
|
-----------------------------------------------
|
||||||
|
0.43 0.00 6017/6017 ajouter_ligne [5]
|
||||||
|
[6] 9.3 0.43 0.00 6017 longueur [6]
|
||||||
|
-----------------------------------------------
|
||||||
|
0.34 0.00 1/1 main [1]
|
||||||
|
[7] 7.4 0.34 0.00 1 meilleure_periode [7]
|
||||||
|
-----------------------------------------------
|
||||||
|
0.13 0.00 1/1 main [1]
|
||||||
|
[8] 2.8 0.13 0.00 1 total_par_client [8]
|
||||||
|
-----------------------------------------------
|
||||||
|
0.12 0.00 1/1 main [1]
|
||||||
|
[9] 2.6 0.12 0.00 1 nb_clients_distincts [9]
|
||||||
|
-----------------------------------------------
|
||||||
|
<spontaneous>
|
||||||
|
[10] 1.5 0.07 0.00 _init [10]
|
||||||
|
-----------------------------------------------
|
||||||
|
0.06 0.00 1/1 main [1]
|
||||||
|
[11] 1.3 0.06 0.00 1 total_par_jour [11]
|
||||||
|
-----------------------------------------------
|
||||||
|
0.00 0.00 149998/149998 generer_transactions [15]
|
||||||
|
[12] 0.0 0.00 0.00 149998 alea [12]
|
||||||
|
-----------------------------------------------
|
||||||
|
0.00 0.00 30000/30000 main [1]
|
||||||
|
[13] 0.0 0.00 0.00 30000 categorie [13]
|
||||||
|
-----------------------------------------------
|
||||||
|
0.00 0.00 1/1 main [1]
|
||||||
|
[14] 0.0 0.00 0.00 1 empreinte [14]
|
||||||
|
-----------------------------------------------
|
||||||
|
0.00 0.00 1/1 main [1]
|
||||||
|
[15] 0.0 0.00 0.00 1 generer_transactions [15]
|
||||||
|
0.00 0.00 149998/149998 alea [12]
|
||||||
|
-----------------------------------------------
|
||||||
|
0.00 0.00 1/1 main [1]
|
||||||
|
[16] 0.0 0.00 0.00 1 trier_par_montant [16]
|
||||||
|
-----------------------------------------------
|
||||||
|
|
||||||
|
This table describes the call tree of the program, and was sorted by
|
||||||
|
the total amount of time spent in each function and its children.
|
||||||
|
|
||||||
|
Each entry in this table consists of several lines. The line with the
|
||||||
|
index number at the left hand margin lists the current function.
|
||||||
|
The lines above it list the functions that called this function,
|
||||||
|
and the lines below it list the functions this one called.
|
||||||
|
This line lists:
|
||||||
|
index A unique number given to each element of the table.
|
||||||
|
Index numbers are sorted numerically.
|
||||||
|
The index number is printed next to every function name so
|
||||||
|
it is easier to look up where the function is in the table.
|
||||||
|
|
||||||
|
% time This is the percentage of the `total' time that was spent
|
||||||
|
in this function and its children. Note that due to
|
||||||
|
different viewpoints, functions excluded by options, etc,
|
||||||
|
these numbers will NOT add up to 100%.
|
||||||
|
|
||||||
|
self This is the total amount of time spent in this function.
|
||||||
|
|
||||||
|
children This is the total amount of time propagated into this
|
||||||
|
function by its children.
|
||||||
|
|
||||||
|
called This is the number of times the function was called.
|
||||||
|
If the function called itself recursively, the number
|
||||||
|
only includes non-recursive calls, and is followed by
|
||||||
|
a `+' and the number of recursive calls.
|
||||||
|
|
||||||
|
name The name of the current function. The index number is
|
||||||
|
printed after it. If the function is a member of a
|
||||||
|
cycle, the cycle number is printed between the
|
||||||
|
function's name and the index number.
|
||||||
|
|
||||||
|
|
||||||
|
For the function's parents, the fields have the following meanings:
|
||||||
|
|
||||||
|
self This is the amount of time that was propagated directly
|
||||||
|
from the function into this parent.
|
||||||
|
|
||||||
|
children This is the amount of time that was propagated from
|
||||||
|
the function's children into this parent.
|
||||||
|
|
||||||
|
called This is the number of times this parent called the
|
||||||
|
function `/' the total number of times the function
|
||||||
|
was called. Recursive calls to the function are not
|
||||||
|
included in the number after the `/'.
|
||||||
|
|
||||||
|
name This is the name of the parent. The parent's index
|
||||||
|
number is printed after it. If the parent is a
|
||||||
|
member of a cycle, the cycle number is printed between
|
||||||
|
the name and the index number.
|
||||||
|
|
||||||
|
If the parents of the function cannot be determined, the word
|
||||||
|
`<spontaneous>' is printed in the `name' field, and all the other
|
||||||
|
fields are blank.
|
||||||
|
|
||||||
|
For the function's children, the fields have the following meanings:
|
||||||
|
|
||||||
|
self This is the amount of time that was propagated directly
|
||||||
|
from the child into the function.
|
||||||
|
|
||||||
|
children This is the amount of time that was propagated from the
|
||||||
|
child's children to the function.
|
||||||
|
|
||||||
|
called This is the number of times the function called
|
||||||
|
this child `/' the total number of times the child
|
||||||
|
was called. Recursive calls by the child are not
|
||||||
|
listed in the number after the `/'.
|
||||||
|
|
||||||
|
name This is the name of the child. The child's index
|
||||||
|
number is printed after it. If the child is a
|
||||||
|
member of a cycle, the cycle number is printed
|
||||||
|
between the name and the index number.
|
||||||
|
|
||||||
|
If there are any cycles (circles) in the call graph, there is an
|
||||||
|
entry for the cycle-as-a-whole. This entry shows who called the
|
||||||
|
cycle (as parents) and the members of the cycle (as children.)
|
||||||
|
The `+' recursive calls entry shows the number of function calls that
|
||||||
|
were internal to the cycle, and the calls entry for each member shows,
|
||||||
|
for that member, how many times it was called from other members of
|
||||||
|
the cycle.
|
||||||
|
|
||||||
|
Copyright (C) 2012-2025 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
Copying and distribution of this file, with or without modification,
|
||||||
|
are permitted in any medium without royalty provided the copyright
|
||||||
|
notice and this notice are preserved.
|
||||||
|
|
||||||
|
Index by function name
|
||||||
|
|
||||||
|
[10] _init [15] generer_transactions [3] nb_paires_opposees
|
||||||
|
[5] ajouter_ligne [6] longueur [2] rechercher_par_id
|
||||||
|
[12] alea [7] meilleure_periode [8] total_par_client
|
||||||
|
[13] categorie [9] nb_clients_distincts [11] total_par_jour
|
||||||
|
[14] empreinte [4] nb_facons_rendre [16] trier_par_montant
|
||||||
+6017
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user