public static Program instance;
private static void OrdenaArray(int[] vetor, int inicio, int fim)
vetor[inicio] = vetor[f];
OrdenaArray(vetor, inicio, f - 1);
OrdenaArray(vetor, f + 1, fim);
private static int[] BuscaItensFaltantesNaSequencia(int[] vetor)
int f = vetor.Length - 1;
Array.Resize(ref falta, falta.Length + 1);
falta[falta.Length - 1] = p + 1;
public string OrdenaArray(params string[] args)
int[] vetor = Array.ConvertAll(args, valor => int.Parse(valor));
OrdenaArray(vetor, 0, vetor.Length - 1);
return string.Join(',', vetor);
public string BuscaItensFaltantesNaSequencia(string args)
int[] vetor = Array.ConvertAll(args.Split(','), valor => int.Parse(valor));
return string.Join(',', BuscaItensFaltantesNaSequencia(vetor));
public static void Main()
instance = instance ?? new Program();
var ordenado = instance.OrdenaArray("6", "3", "5", "4", "01", "7", "9");
var itensFaltantes = instance.BuscaItensFaltantesNaSequencia(ordenado);
var resultadoOrdenadoEsperado = "1,3,4,5,6,7,9";
var resultadoItensFaltantesEsperado = "2,8";
Console.WriteLine(ordenado == resultadoOrdenadoEsperado ? $"CORRETO {ordenado} == {resultadoOrdenadoEsperado}" : $"INCORRETO {ordenado} != {resultadoOrdenadoEsperado}");
Console.WriteLine(itensFaltantes == resultadoItensFaltantesEsperado ? $"CORRETO {itensFaltantes} == {resultadoItensFaltantesEsperado}" : $"INCORRETO {itensFaltantes} != {resultadoItensFaltantesEsperado}");