Mon quicksort ne trie pas toutes mes valeurs!
loosfoos
Messages postés
2
Statut
Membre
-
loosfoos Messages postés 2 Statut Membre -
loosfoos Messages postés 2 Statut Membre -
Bonjour, j'ai tenté de faire un quicksort (selon la troisième ligne de mon tableau, je trie le tout), j'en suis arrivé à ca :
void OrganiserTableau(int **vertex, int array_size)
{
q_sort(vertex, 0, array_size-1);
}
void q_sort(int **vertex, int left, int right)
{
int pivot[2], l_hold, r_hold;
l_hold = left;
r_hold = right;
pivot[0]=vertex[left][0];
pivot[1]=vertex[left][1];
pivot[2] = vertex[left][2];
while (left < right)
{
while ((vertex[right][2] >= pivot[2]) && (left < right))
right--;
if (left != right)
{
vertex[left][0] = vertex[right][0];
vertex[left][1] = vertex[right][1];
vertex[left][2] = vertex[right][2];
left++;
}
while ((vertex[left][2] <= pivot[2]) && (left < right))
left++;
if (left != right)
{
vertex[right][0] = vertex[left][0];
vertex[right][1] = vertex[left][1];
vertex[right][2] = vertex[left][2];
right--;
}
}
vertex[left][0] = pivot[0];
vertex[left][1] = pivot[1];
vertex[left][2] = pivot[2];
pivot[0] = left;
left = l_hold;
right = r_hold;
if (left < pivot[0])
q_sort(vertex, left, pivot[0]-1);
if (right > pivot[0])
q_sort(vertex, pivot[0]+1, right);
}
Je ne comprend pas comment faire pour tout trier ! Merci beaucoup si vous avez le temps de me dire ce qui ne vas pas !
void OrganiserTableau(int **vertex, int array_size)
{
q_sort(vertex, 0, array_size-1);
}
void q_sort(int **vertex, int left, int right)
{
int pivot[2], l_hold, r_hold;
l_hold = left;
r_hold = right;
pivot[0]=vertex[left][0];
pivot[1]=vertex[left][1];
pivot[2] = vertex[left][2];
while (left < right)
{
while ((vertex[right][2] >= pivot[2]) && (left < right))
right--;
if (left != right)
{
vertex[left][0] = vertex[right][0];
vertex[left][1] = vertex[right][1];
vertex[left][2] = vertex[right][2];
left++;
}
while ((vertex[left][2] <= pivot[2]) && (left < right))
left++;
if (left != right)
{
vertex[right][0] = vertex[left][0];
vertex[right][1] = vertex[left][1];
vertex[right][2] = vertex[left][2];
right--;
}
}
vertex[left][0] = pivot[0];
vertex[left][1] = pivot[1];
vertex[left][2] = pivot[2];
pivot[0] = left;
left = l_hold;
right = r_hold;
if (left < pivot[0])
q_sort(vertex, left, pivot[0]-1);
if (right > pivot[0])
q_sort(vertex, pivot[0]+1, right);
}
Je ne comprend pas comment faire pour tout trier ! Merci beaucoup si vous avez le temps de me dire ce qui ne vas pas !
A voir également:
- Mon quicksort ne trie pas toutes mes valeurs!
- Excel trier de a à z ne fonctionne pas - Guide
- Excel liste de valeurs - Guide
- Excel ne pas afficher #valeur - Forum Programmation
- Excel trier par date ne fonctionne pas ✓ - Forum Excel
- Problème format date et tri sous Excel ✓ - Forum Excel