Please help with my quicksort

Reply

Join Date: Nov 2004
Posts: 2
Reputation: dats is an unknown quantity at this point 
Solved Threads: 0
dats dats is offline Offline
Newbie Poster

Please help with my quicksort

 
0
  #1
Nov 4th, 2004
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[SIZE]={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[i]);

list_sorted = quickSort(values,count);
printf("NUMBERS SORTED IN DECENDING ORDER: %d", list_sorted);
getch();
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[left]; //pivot is assigned a value in array as pivot
while (left < right)
{
while ((numbers[right] >= pivot) && (left < right))
right--;
if (left != right)
{
numbers[left] = numbers[right];
left++;
}
while ((numbers[left] <= pivot) && (left < right))
left++;
if (left != right)
{
numbers[right] = numbers[left];
right--;
}
}
numbers[left] = 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);
}
Reply With Quote Quick reply to this message  
Join Date: Sep 2004
Posts: 7,663
Reputation: Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute 
Solved Threads: 725
Team Colleague
Narue's Avatar
Narue Narue is offline Offline
Code Goddess

Re: Please help with my quicksort

 
0
  #2
Nov 5th, 2004
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.
I'm here to prove you wrong.
Reply With Quote Quick reply to this message  
Join Date: Nov 2004
Posts: 2
Reputation: dats is an unknown quantity at this point 
Solved Threads: 0
dats dats is offline Offline
Newbie Poster

Re: Please help with my quicksort

 
0
  #3
Nov 11th, 2004
I'll c what I can do ... thanx for replying
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:



Similar Threads
Other Threads in the C Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC