Не могу выбрать последний элемент массива в c++

Такое дело, что в функции quicksort переменная id_last_element не принимает значение 9, хотя при минусе 2, она принимает значение 8.

#include <iostream>

using namespace std;


void quicksort(int* array, int size_of_array) {
    int id_last_element = size_of_array - 1;
    int last = array[id_last_element];

    cout << size_of_array<< endl;
    cout << "LAST = " << last << endl;
    for (int i = 0; i < size_of_array;)
    {
        if (array[i] > array[last]) 
        {
            cout << array[i] << " change on " << array[last] << endl;
            swap(array[i], array[last]);
            cout << "Array: ";
            for (int k = 0; k < size_of_array; k++)
            {
                cout << array[k] << " ";
            }
            cout << endl;
            i++;
        }
        else 
        {
            cout << array[i] << " doesn't change on " << array[last] << endl;
            for (int k = 0; k < size_of_array; k++)
            {
                cout << array[k] << " ";
            } 
            cout << endl;
            last--;
        }

    }
    
}


int main()
{
    int array_1[10] = {5,3,4,2,1,9,6,7,8,10};
    
    int array_size = end(array_1) - begin(array_1);
    

    cout << "Unsorted array:";
    for (int i = 0; i < array_size; i++)
    {
        cout << array_1[i] << " ";
    }
    cout << endl;

    quicksort(array_1,array_size);


    cout << "result is:" << endl;
    for (int j = 0; j < array_size; j++)
    {
        cout << array_1[j] << endl;
    }
    return 0;
}

Ответы (0 шт):