I made this quick sort code below and I can not call the function. So far I have only done basic functions and can not find the error.
public static void ordenar(int[] vetor)
{
ordenar(vetor, 0, vetor.Length - 1);
}
public static void ordenar(int[] vetor, int inicio, int fim)
{
if (inicio < fim)
{
int posisaoPivo=separa(vetor, inicio, fim);
ordenar(vetor, inicio, posisaoPivo - 1);
ordenar(vetor, posisaoPivo + 1, fim);
}
}
private static int separa(int[] vetor, int inicio, int fim)
{
int pivo = vetor[inicio];
int i = inicio + 1, f = fim;
while (i <= f)
{
if (vetor[i] <= pivo)
i++;
else if (pivo < vetor[f])
f--;
else
{
int troca = vetor[i];
vetor[i] = vetor[f];
vetor[f] = troca;
i++;
f--;
}
}
vetor[inicio] = vetor[f];
vetor[f] = pivo;
return f;
}
Main program:
static void Main(string[] args)
{
int a=0, b=0,c=0;
Console.WriteLine("digite os numeros");
int[] numeros = new int[4];
b=int.Parse(Console.ReadLine());
c=int.Parse(Console.ReadLine());
for (int i = 0; i < 4; i++)
{
a = separa(numeros,b,c);
numeros[i] = int.Parse(Console.ReadLine());
}
Console.WriteLine("numeros {0}=",separa(numeros, b, c).ToString());
Console.ReadKey();
}
}
}