Je rencontre des problèmes lors de l'exécution de l'algorithme quicksort. Il s'agit d'une erreur que je suis en train de rencontrer mais je n'arrive pas à trouver l'origine du problème. si quelqu'un pourrait pointer où l'erreur est je serai merci.problème de mise en œuvre de quicksort
#include <stdio.h>
#include <stdlib.h>
void main(){
int arr[] = {10, 7, 8, 9, 1, 5};
int n = sizeof(arr)/sizeof(arr[0]);
quickSort(arr,0,n-1);
printArray(arr,0,n-1);
}
//Quicksort Function
void quickSort(int arr[],int low,int high){
if (low < high){
int pi=partition(arr,low,high);
quickSort(arr,low,pi-1);//takes care of lower set of numbers
quickSort(arr,pi+1,high);//takes care of higher elements above pivot
}
}
//Function for partitioing, in my program i am cosidering pivot as the element at high or the last element
int partition(int arr[],int low,int high){
int i,j;
i=(low-1);
int pivot=arr[high];
for(j=low;j<=high;j++){
if(arr[j]<=pivot){
i++;
swap(&arr[i], &arr[j]);
}
}
swap(&arr[i+1], &arr[high]);
return (i+1);
}
//function to print array
void printArray(int arr[],int low,int high){
int i;
for(i=low;i<=high;i++){
printf("%d ",arr[i]);
}
}
//function to swap two elements of array
void swap(int* a, int* b)
{
int t = *a;
*a = *b;
*b = t;
}
Qu'est-ce que Erreur? Et formatez votre code. –
Avez-vous essayé d'imprimer l'état des éléments à trier dans chaque itération de votre algorithme, et de comparer cela avec les résultats exacts lorsque vous effectuez le tri manuellement? Qu'avez-vous fait pour essayer de trouver l'erreur? SO n'est pas un débogueur pour vous. –
Bienvenue sur stackoverflow.com. Veuillez prendre le temps de lire [les pages d'aide] (http://stackoverflow.com/help), en particulier les sections intitulées ["Quels sujets puis-je poser à propos d'ici?"] (Http://stackoverflow.com/help/ sur le sujet) et ["Quels types de questions devrais-je éviter de poser?"] (http://stackoverflow.com/help/dont-ask). Aussi s'il vous plaît [prendre la visite] (http://stackoverflow.com/tour) et [lire sur la façon de poser de bonnes questions] (http://stackoverflow.com/help/how-to-ask). –