How to make quicksort work properly?

Hey guys, I'm trying to figure out what exactly is needed to make this quicksort work properly. I am receiving an error saying, primary expression before ']'
Take a look at the code I put a comment line where the issue is located.
Any help is appreciated.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
#include <string>

using namespace std;

void numbers();
void quickSort(int arr[], int left, int right);

int main()
{
    string weather[] = {"Winter","Summer","Spring","Fall"};

    for(int i = 0; i < 4; i++){
        cout << "Weather types: " << weather[i] << endl;
    }
    cout << endl;
    numbers();

    return 0;
}

//FUNCTION FOR INT ARRAY
void numbers()
{
    int nums[10] = {12,88,66,18,1,3,8,99,102,855};

    //SORTING NUMBERS
    quickSort(nums[],12,855); //ERROR HERE

    //DISPLAY ARRAY
    for(int i = 0; i < 10; i++){
    cout << "List of numbers: " << nums[i] << endl;
    }
}

void quickSort(int arr[], int left, int right)
{

      int i = left, j = right;

      int tmp;

      int pivot = arr[(left + right) / 2];



      /* partition */

      while (i <= j) {

            while (arr[i] < pivot)

                  i++;

            while (arr[j] > pivot)

                  j--;

            if (i <= j) {

                  tmp = arr[i];

                  arr[i] = arr[j];

                  arr[j] = tmp;

                  i++;

                  j--;

            }

      };



      /* recursion */

      if (left < j)

            quickSort(arr, left, j);

      if (i < right)

            quickSort(arr, i, right);

}
Hi.
quickSort(nums, 0, sizeof(nums) / sizeof(nums[0]) - 1);
I think that this is correct code - it works :D.
1) you shouldn't type [] in function call
2) 2nd parameter should be index of first element in the array (0), not element itself
3) 3rd parameter should be index of last element in the array (size of array - 1), not element itself
Last edited on
Thank you naaissus!
It works like a charm, also thanks for the better understanding with the 1-3 advice comments.
Topic archived. No new replies allowed.