Passando array por função recursivamente.
Estou fazendo um exercício de Deitel&Deitel e não estou conseguindo resolver um código:
Basicamente, devo fazer uma função que olha um vetor, procura o menor valor e poe na primeira posição. Após isso deve chamar a si mesma e olhar a segunda posição, até ordenar todo o vetor. Segue o que tentei até agora:
#include <iostream>
using namespace std;
void selectionSort(int vetor[], int limite, int comeco=0)
{
int menor=vetor[comeco];
int aux=0;
int pos=0;
for(int i=comeco; i<limite;i++)
{
if(menor>vetor[i])
{
menor=vetor[i];
pos=i;
break;
}
}
aux=vetor[comeco];
vetor[comeco]=menor;
vetor[pos]=aux;
comeco++;
if(comeco<limite)
{
selectionSort(vetor, limite, comeco);
}
}
int main()
{
int limite=8;
int array1[limite]={100,3,25, 103,104, 200,7,64};
selectionSort(array1, limite);
cout<<"ARRAYS ORDENADOS:\n";
for(int i=0;i<8;i++)
cout<<array1[i]<<" ";
cout<<endl;
return 0;
}
Aparentemente o maior valor se replica tomando a posição do menor. Agradeço a ajuda e o empenho de quem conseguir. Estou há mais de 10h tentando.