no save
Assistance
Achat
News

Forum | programmation
[c++] tri de tableau
robert, le sam. 16 déc. 2006 à 22:40:31
Bonsoir,
j'aimerais faire un tri d'un tableau contenant des types point composé de x (ordonné) et de t (le temps), et j'aimerais trier le tableau efficacement
en ordre croissant en fonction de t plus précisément trier le tableau pointé par pv. voici mon code dont je vous épargne son intégralité
Merci d'avance

class Point {
public:
double x, t;
Point( double x = 0.0, double t= 1) : x(x), t(t) {}
friend Point milieu( const Point & p, const Point & q);
friend Point gauss2D( const Point & moy = Point(), double sig2 = 1.0);
};
struct Brown2D {
Point q;
Brown2D *s;
};
Point milieu( const Point & p, const Point & q) {
double x = (p.x + q.x)/2.0;
double t = (p.t + q.t)/2.0;
return Point(x,t);
}


int main() {
srand( time(0));

Brown2D B1 = { Point(gauss2D()), 0 },//considérer B1 et B0
B0 = { Point(0,0), &B1 };//comme despoints
Brown2D *pg, *pm, *pd; // pointeurs gauche, milieu, droite
int N=3;
Point *pv=new Point [N];
pv[0]=Point(0,0);
pv[N-1]=B1.q;
for ( int n = 1 ; n < N ; n ++ ) {
for ( pg = &B0 ; pd = pg->s ; pg = pd ) {
pm = new Brown2D;
pm->q = gauss2D( milieu( pg->q, pd->q),
abs(pd->q.t - pg->q.t)/4);
pv[n]=Point(pm->q.x,pm->q.t);//ici pv prend tous les points(x,t) mais dans le desordre
pm->s = pg->s;
pg->s = pm;
pm->q.plot();
}
}

} Configuration: Windows XP
Firefox 2.0


Lapinkiller
déc. 06
Suivant
REPONSES
Lapinkiller
déc. 06
robert
déc. 06
mamiemando
déc. 06
Lapinkiller
déc. 06
robert
déc. 06
mamiemando
déc. 06
Version Web
Réalisé par RedShift
no save