I need help ... I think I know what I'm doing one min. then the next I'm lost :o . Please help ...

#include <stdlib.h>
#include <conio.h>
#include <stdio.h>

#define SIZE 5

void quickSort(int[], int );
void q_sort(int[], int, int ) ;

// ***** Main program *****
int main(void)
int list_sorted, count = SIZE;    //no. of machines used
int values={4,6,7,5,1};      //no. of task

// **** initialize contents of array; ****
for(int i=0; i<=SIZE;i++)
printf("Original values are: %d",  values);

list_sorted = quickSort(values,count);
printf("NUMBERS SORTED IN DECENDING ORDER:  %d", list_sorted);
return 0;


/*The following function defines the array size*/

void quickSort(int numbers[], int array_size) //An array of numbers & their
//size is passed as a parameter.
q_sort(numbers, 0, array_size - 1);   //a call to q_sort with the array values,
// 0 and the amt of numbers in array
// minus 1 - passed as the parameter

}   //end of quickSort

void q_sort(int numbers[], int left, int right)
int pivot, l_hold, r_hold;

l_hold = left;              //l_hold is assigned 0
r_hold = right;             //r_hold is assigned array_size minus 1
pivot = numbers;      //pivot is assigned a value in array as pivot
while (left < right)
while ((numbers >= pivot) && (left < right))
if (left != right)
numbers = numbers;
while ((numbers <= pivot) && (left < right))
if (left != right)
numbers = numbers;
numbers = pivot;
pivot = left;
left = l_hold;
right = r_hold;
if (left < pivot)
q_sort(numbers, left, pivot-1);
if (right > pivot)
q_sort(numbers, pivot+1, right);

Edited 3 Years Ago by happygeek: fixed formatting

Okay...what is it doing that you don't want? As much as I enjoy working with algorithms and data structures, debugging somebody else's quicksort usually isn't enjoyable. Your recursive calls are correct, so the problem is in the partitioning. I see several potential problems, but the best way for you to figure them out is to step through a small data set by hand to check your logic.

This article has been dead for over six months. Start a new discussion instead.