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

