Problema de lógica en una Ordenación simple
Publicado por Manuel F. (33 intervenciones) el 29/07/2016 20:19:47
Muy Buenas Tardes a Todos !!!
Tengo un pequeño problema de lógica para ordenar unos datos (que están desordenados, por supuesto) dentro de un array...
{ 29, 8, 43, 4, 29, 83, 55, 62, 81, 5, 8, 77, 34, 29, 81, 18, 29, 8 } (originalmente)...
{ 4, 5, 8, 8, 8, 18, 29, 29, 29, 29, 34, 43, 55, 62, 77, 81, 81, 83 } (ordenados).
Esto lo logro mediante el usos del "método de la burbuja":
Hasta ahí, todo bien...
Ahora lo que quiero es lograr separar los datos que no se repiten:
{ 4, 5, 18, 34, 43, 55, 62, 77, 83 }
y los que se repiten:
{ 8, 8, 8, 29, 29, 29, 29, 81, 81 } así: { 8, 29, 91}...
O sea, en 2 arreglos distintos, por supuesto conservando la información de los datos de se repiten, cuantas veces, etc.
Es para calcular la frecuencia absoluta, relativa, acumulada y relativa acumulada con fines estadísticos.
Estoy diseñando una calculadora, y entre otras funciones que le estoy agregando es el de algunos calculos de ese tipo.
Pido la ayuda de uds, porque he intentado de todo he "volteado" el método que utilicé, he probado de varias formas y no he logrado nada salvo "desastres" en los resultados !!!
Agradezco cualquier ayuda !!!
Manuel F. Borrego S.
Barcelona, Edo. Anzoátegui. Venezuela.
[Mientras nos permitan seguir comunicándonos...!!!]
Tengo un pequeño problema de lógica para ordenar unos datos (que están desordenados, por supuesto) dentro de un array...
{ 29, 8, 43, 4, 29, 83, 55, 62, 81, 5, 8, 77, 34, 29, 81, 18, 29, 8 } (originalmente)...
{ 4, 5, 8, 8, 8, 18, 29, 29, 29, 29, 34, 43, 55, 62, 77, 81, 81, 83 } (ordenados).
Esto lo logro mediante el usos del "método de la burbuja":
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
int[] datos = { 29, 8, 43, 4, 29, 83, 55, 62, 81, 5, 8, 77, 34, 29, 81, 18, 29, 8 };
int datoTemporal;
int n = datos.Length; // Número de datos.
int[] datosSinOrdenar = datos;
Console.Clear();
//
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine(" Datos sin ordenar...");
for (int srd = 0; srd < n; srd++)
{
Console.Write("{0} ", datosSinOrdenar[srd]); // Se muestran los datos en su orden original...
}
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine(" Ordenando mediante el método de la burbuja...");
for (int i = 0; i < n - 1; i++)
{
for (int j = i + 1; j < n; j++)
{
/*foreach (int dato in datos)
Console.Write("{0} ", dato); // Se muestran los datos. mientras se van ordenando...
Console.WriteLine();*/
if (datos[i] > datos[j])
{
datoTemporal = datos[i];
datos[i] = datos[j];
datos[j] = datoTemporal;
}
}
}
Console.WriteLine();
Console.Write(" Ordenado: ");
foreach (int dato in datos) // Se Muestran los datos ordenados de forma correcta...
Console.Write("{0} ", dato);
Console.ReadKey();
Hasta ahí, todo bien...
Ahora lo que quiero es lograr separar los datos que no se repiten:
{ 4, 5, 18, 34, 43, 55, 62, 77, 83 }
y los que se repiten:
{ 8, 8, 8, 29, 29, 29, 29, 81, 81 } así: { 8, 29, 91}...
O sea, en 2 arreglos distintos, por supuesto conservando la información de los datos de se repiten, cuantas veces, etc.
Es para calcular la frecuencia absoluta, relativa, acumulada y relativa acumulada con fines estadísticos.
Estoy diseñando una calculadora, y entre otras funciones que le estoy agregando es el de algunos calculos de ese tipo.
Pido la ayuda de uds, porque he intentado de todo he "volteado" el método que utilicé, he probado de varias formas y no he logrado nada salvo "desastres" en los resultados !!!
Agradezco cualquier ayuda !!!
Manuel F. Borrego S.

Barcelona, Edo. Anzoátegui. Venezuela.
[Mientras nos permitan seguir comunicándonos...!!!]
Valora esta pregunta


0