Pages

Affichage des articles dont le libellé est Optimisation. Afficher tous les articles
Affichage des articles dont le libellé est Optimisation. Afficher tous les articles

Optimisation : tri tableau à 2 dimensions sujet

mardi 8 avril 2014




Bonjour

Je souhaiterais optimiser mon code .
Un petit exemple :
J ai le tableau X[] {3,9,2}
Apres le tir j obtiens 2,3,9

Mon objectif est de faire la difference entre la position initale de 3 et sa nouvelle position,(0-1 = 1) idem avec les autres valeurs de mon tableau
Pour y parvenir, actuellement je cree un tableau initial, un tableau target qui me servira à trier et remplacer les valeurs et un tableau posi qui me servira à comparer les positions initiales et trier.
A l issue je boucle sur l index que je compare à la vealeur de Posi[index]....
C est lent et peut certainement etre optimisé par le tri d un tableau à 2 dimensions ? Qu en pensez vous ?
Merci pour votre aide, commentaires etc

stéphane

mon code :


Code:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
int T = 30;
Double[] X = { 44.3, 21.3, 31.4, 8.7, 12.8, 45.0, 88.1, 32.0, 53.2, 30.3, 95.8, 50.4, 71.6, 26.7, 3.8, 36, 46, 34.3, 77.2, 55.3, 64.2, 85.5, 18.6, 50.9, 93.6, 26.8, 59, 99.1, 57, 78.1 };

double[] target= new double [T];
int[] posi= new int[T];
for (int Idx = 0; Idx < T; Idx++)
{
target[Idx] = X[Idx];
posi[Idx] = Idx;
}
//---Tri
for (int k = 0; k < T; k++)
{
for (int i = k+1; i < T; i++)
{
if (target[i] < target[k])
{
double tmp = target[k];
target[k] = target[i];
target[i] = tmp;
int tmp2 = posi[k];
posi[k] = posi[i];
posi[i] = tmp2;
}
}
}
int Diff;
int D_t=0;
for (int i = 0; i < T; i++)
{
Diff = posi[i] - i;
Diff = Diff * Diff;
D_t = D_t + Diff;
}






Choix champs pour optimisation BDD sujet

vendredi 28 mars 2014




Bonjour,

je dois utiliser souvent une requête pour savoir si un des champs d'une colonne est nul ou pas.
Ne serait-il pas plus efficace d'enregistrer un champs de type Bool qui est à False tant que ce champs reste vide et passe à True quand ce champs vide est rempli?

Sinon est-ce que l'ordre des champs a un impact (même minime) sur les performances de la BDD?
A-t-on intérêt à mettre les champs que l'on utilise le plus en premier?

Merci d'avance.




Optimisation Site Web sujet




Bonjour,

je me pose des questions quant à l'architecture du site que je suis en train de développer.

C'est une sorte d'agenda, avec une BDD Event qui contient entre autre les champs latitude et longitude et date de fin de l'événement.
Et je voudrais afficher sur la page d'accueil les événements proche de la ville de l'utilisateur.


Jusqu'à maintenant je me disais que j'allais rechercher dans la BDD les événement proches (à une distance fixée de la latitude et de la longitude de l'utilisateur) et ensuite ressortir les événements dont la date n'est pas passée.
Mais comme cette requête sera faite pour tous les utilisateurs sur la page d'accueil, ça risque de vraiment ralentir le site.


Je me dis que le mieux serait donc d'avoir une BDD pour les Events_passés et une Events_a_venir ce qui devrait considérablement accélérer les choses(?).

Mais mon problème est de savoir comment passer un événement de la BDD Events_passés à la BDD Events_a_venir.
J'ai bien pensé à exécuter à intervalles régulier une requête qui compare les dates des événements à venir avec la date actuelle, mais ça ne me semble pas propre du tout (ça risque de ralentir considérablement le site pendant cette requête non?) et en plus ce ne sera pas précis si je ne fais pas cette requête assez régulièrement.

Est-ce selon vous tout de même le meilleur moyen?
Merci d'avance à qui prendra le temps de lire ce petit pavé! (et encore plus à celui qui y répondra ;) )