QuickSort Array Out of Bound problem

Contributor
27Mar2007,20:00   #1
shah123's Avatar
Now i have another problem when i get an array using

Code:
getArray(int [] arr)
for (i = 0; i < arr.Length; i++)
                {

                    String val = Console.ReadLine();
                    arr[i] = Convert.ToInt32(val);
}
 
 public static void quicks(int lo, int hi, int[] arr)
        {
            int i = lo;
            hi = arr.Length;
            int j = hi;
            int pivot;
            pivot = arr[(lo + hi) / 2];

            if (lo >= hi)
            {
                return;
            }
            Console.WriteLine(pivot);
            
                do
                {
                    while (arr[i] < pivot)
                    i++;
                    while (arr[j] > pivot) // when it comes here it says Array
                                          //  out of bound problem   
                    j--;

                    if (i < j)
                    {
                    int temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                    }
                
            } while(i < j ); // end of do condition

            if (lo < j) quicks(lo, j,arr);
            if (i < hi) quicks(i, hi,arr);
Please help me in correcting quicksort function
Go4Expert Founder
27Mar2007,21:52   #2
shabbir's Avatar
What is the initial value of of hi and lo that is passed to the function.

The exception you are talking about looks like hi is not within the range of arr.
Contributor
28Mar2007,15:21   #3
shah123's Avatar
I have sorted this problem thanks a million for all help.