private int Partition(string[] array, int low, int high)
string pivot = array[high];
int lowIndex = (low - 1);
for (int j = low; j < high; j++)
if (string.Compare(array[j], pivot) < 0)
string aux1 = array[lowIndex];
array[lowIndex] = array[j];
string aux2 = array[lowIndex + 1];
array[lowIndex + 1] = array[high];
private void QuickSort(string[] array, int low, int high)
int partitionIndex = Partition(array, low, high);
QuickSort(array, low, partitionIndex - 1);
QuickSort(array, partitionIndex + 1, high);
private bool AchouValorNoArray(string[] strArray, string valor)
foreach (string item in strArray)
if (int.Parse(item) == int.Parse(valor))
Console.WriteLine("acou => " + item);
public static Program instance;
public string OrdenaArray(params string[] args)
var resultado = string.Empty;
QuickSort(args, 0, args.Length -1);
for (int i = 0; i < args.Length; i++)
args[i] = int.Parse(args[i]).ToString();
resultado += args[i] + ",";
resultado = resultado.Substring(0, resultado.Length -1);
public string BuscaItensFaltantesNaSequencia(params string[] args)
var resultado = string.Empty;
QuickSort(args, 0, args.Length -1);
for (int i = 0; i < args.Length -1 ; i++)
args[i] = int.Parse(args[i]).ToString();
int aux1 = int.Parse(args[i]) + 1;
Console.WriteLine("aux1 => " + aux1.ToString());
if (!AchouValorNoArray(args, aux1.ToString()))
resultado += resultado + ",";
public static void Main()
instance = instance ?? new Program();
Console.WriteLine("++++ Teste Ronaldo Moreira +++++");
var ordenado = instance.OrdenaArray("6", "3", "5", "4", "01", "7", "9");
var itensFaltantes = instance.BuscaItensFaltantesNaSequencia(ordenado);
Console.WriteLine("itensFaltantes => " +itensFaltantes);
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}");