Сортировка одномерного динамического массива без дополнительных библиотек

Пытался сделать функцию, которая бы сортировала числа динамического массива по возрастанию без использования библиотек algorithm и vector, (чтобы получить базовое понимание работы динамических массивов). В приведённом ниже коде в функции fun1 на второй итерации внешнего цикла for (при j=1) при обходе массива, на который указывает massiv, переменной min присваивается какое-то левое значение, которое берётся непонятно откуда. Заранее извиняюсь за глупый вопрос, но что-то не пойму, что не так.

using namespace std;
void fun1(double  *&massiv, int &size)
{
    const int SIZE = size;
    double* vari = new double[SIZE];
    for (int j = 0; j < SIZE; j++)
    {
        double min = massiv[0];
        for (int i = 0; i < size; i++)
        {
            if (massiv[i] < min)
            {
                min = massiv[i];
            }
        }
        for (int i = 0; i < size; i++)
        {
            cout << massiv[i] << " ";
        }
        cout << endl;
        double* ostatoch = new double[size - 1];
        for (int i = 0; i < (size - 1); i++)
        {
            if (massiv[i] != min)    
            {
                ostatoch[i] = massiv[i];
            }
        }
        delete[] massiv;
        massiv = ostatoch;
        vari[j] = min;
        size--;
    }
    cout << "============" << endl;
    for (int i = 0; i < SIZE; i++)
    {
        cout << vari[i] << " ";
    }
    delete[] vari;
}
int main()
{
    setlocale(LC_ALL, "Rus");
    int size;
    cout << "введите количество жлементов массива\n";
    cin >> size;
    double* massiv = new double[size];
    cout << "введите элементы массива" << endl;
    for (int i = 0; i < size; i++)
    {
        cin >> massiv[i];
    }
    cout << endl;
    for (int i = 0; i < size; i++)
    {
        cout<< massiv[i]<<" ";
    }
    cout << endl;
    cout << "после функции=======================\n";
    fun1(massiv, size);
    delete[] massiv;
    return 0;
}```

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