Сортировка одномерного динамического массива без дополнительных библиотек
Пытался сделать функцию, которая бы сортировала числа динамического массива по возрастанию без использования библиотек 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;
}```