robertjul
Messages postés15Date d'inscriptionmardi 3 mars 2009StatutMembreDernière intervention26 juin 2009
-
29 mars 2009 à 16:52
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
29 mars 2009 à 18:47
Bonjour,
Je tenais à contribuer au partage de code source en mettant se que j'ai fait avec mon binome sur les algorithmes de tri. Je pense qu'il soit bien codé et optimisé.
package Algorithmes;
import java.util.Arrays;
public class TriEntier {
// TRI SELECTION ORDINAIRE
public static void selectionOrdinaire(int[] T){
long debut = System.currentTimeMillis();
int i,j,valeur,index;
int indexAjout=0;
int tailleT=T.length;
// TRI RAPIDE
public static void triRapide(int[] T) {
long debut = System.currentTimeMillis();
int deb = 0;
int fin = T.length-1;
triRapide(T, deb, fin);
long duree = System.currentTimeMillis() - debut;
System.out.println("TRI RAPIDE Temps d'exécution : " + (float)duree/1000 + " secondes");
}
private static void echanger(int T[], int a,int b){
int temp = T[a];
T[a] = T[b];
T[b] = temp;
}
private static void triRapide(int[] T, int deb, int fin) {
if (deb < fin) {
int pivot = partitionner(T, deb, fin);
triRapide(T, deb, pivot);
triRapide(T, pivot+1, fin);
}
}
private static int partitionner(int[] T, int deb, int fin) {
int pivot = (fin+deb)/2;
echanger(T, deb, pivot);
int index = deb;
for (int i = deb+1; i<= fin; i++) {
if (T[i] < T[deb]) {
index++;
echanger(T, i, index);
}
}
echanger(T, deb, index);
return index;
}
// TRI PAR TAS
public static void triParTas(int[] T){
long debut = System.currentTimeMillis();
for(int i=(T.length-1)/2; i>=0;i--){
ordonner(T,i,(T.length-1));
}
for(int i= T.length-1; i>=1;i--){
int temp1,temp2=0;
temp1=T[0];
temp2=T[i];
T[i]=temp1;
T[i]=temp2;
ordonner(T,0,i-1);
}
long duree = System.currentTimeMillis() - debut;
System.out.println("TRI PAR TAS Temps d'exécution : " + (float)duree/1000 + " secondes");
}
private static void ordonner (int[] T,int rac, int fin){
int fils=0;
int pere=rac;
int u=T[rac];
while(pere*2<=fin){
fils=pere*2;
if(T[fils]</temp)></taillet-1){>
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 29 mars 2009 à 18:47
Salut,
Merci, mais tu devrais plutôt le poster dans la section codes-sources du site, ainsi tu pourra en faire profiter à plus de monde.
______________________________________
DarK Sidious