Actividad 2 - Algoritmos y Estructura de Datos
Actividad 2 - Algoritmos y Estructura de Datos
Actividad 2 - Algoritmos y Estructura de Datos
Nombre de la Licenciatura
Lic. Ing. Sistemas Computacionales
Matrícula
010230164
Nombre de la Tarea
Tarea 2
Unidad 1
Estructuras está ticas de datos
Fecha
16-03-2020
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos
¿Sabías qué….?
ACTIVIDAD 2
Objetivos:
Instrucciones:
Después de revisar los recursos siguientes debes desarrollar la actividad 2.
Presentación
Creación de archivos
En la siguiente presentación conocerás los métodos utilizados para crear y leer
archivos de texto. Comprueba cada uno de los ejemplos capturando cada código en
el editor de C#.
Lectura
Algoritmos de ordenación y búsqueda (S.d.).
2
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos
-Utiliza el formato para entrega de tareas e integra un documento que contenga un breve
apartado de introducción, desarrollo (puede ser el código desarrollado con comentarios en
las principales secciones) conclusiones y referencias.
Forma de evaluación:
Criterio Ponderación
Presentación 10%
3
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos
Desarrollo de la actividad:
Ejemplo 1:
Para crear un arreglo de una dimensión se debe especificar de qué tipo serán los elementos
del array:
<tipo> [] <nombre> = new <tipo> [<tamaño>];
Para acceder a un elemento en una posición i solo hay que hacer mi_array[i] si tiene una
dimensión, si tiene más de una dimensión, podemos hacer my_array[i,j].
4
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos
Ejemplo 2:
En el siguiente ejemplo, se muestra cómo crear un arreglo, se ordena de forma ascendente
por el método de burbuja y se pide al usuario indique un elemento a buscar para indicar la
posición en la que se encuentra:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Burbuja
{
class Burbuja
{
private int[] vector;
5
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos
6
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos
Ejercicio 1:
Tu tarea consiste en seleccionar un método de ordenación y búsqueda y con base a ello
realizar un programa de consola en C# que ejecute lo siguiente:
(Valor 1.0 punto)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApplication10
{
class Program
{
static void Main()
{
int filas = 0;
Console.WriteLine("indique la longitud del arreglo:");
filas = Convert.ToInt32(Console.ReadLine());
int[] miarreglo = new int[filas];
for (int i = 0; i < filas; i++)
{
Console.WriteLine("elementos del arrego posicion ["+i +"]:");
7
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos
miarreglo[i]= Convert.ToInt32(Console.ReadLine());
}
//para imprimirlo
for (int i = 0; i < filas; i++)
{
Console.WriteLine("[" +miarreglo [i] + "]");
}
Console.WriteLine("");
Console.WriteLine("elija una opcion para ordenar el arreglo");
Console.WriteLine("");
Console.WriteLine("1.- ordenacion por intercambio");//done
Console.WriteLine("2.- ordenacion por seleccion"); //done
Console.WriteLine("3.- ordenacion por insercion");//done
Console.WriteLine("4.- ordenacion por burbuja"); //done
Console.WriteLine("5.- ordenacion shell");///done
Console.WriteLine("6.- ordenacion rapida");//done
Console.WriteLine("7.- salir");
int opcion = Convert.ToInt32(Console.ReadLine());
switch (opcion)
{
case 1:
Console.WriteLine("1.- intercambio");
int ii=0,jj=0,auxiliar=0;
while (true)
{
if (miarreglo[ii + 1] < miarreglo[ii])
{
auxiliar = miarreglo[ii + 1];
miarreglo[ii + 1] = miarreglo[ii];
miarreglo[ii] = auxiliar;
jj++;
}
ii++;
if (ii == miarreglo.Length - 1)
{
ii = 0;
if (jj == 0)
{
break;
}
jj = 0;
}
}
//para imprimirlo
for (int l = 0; l < filas; l++)
{
Console.WriteLine("[" + miarreglo[l] + "]");
8
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos
}
break;
case 2:
Console.WriteLine("2.- seleccion");
int aux, cont1, cont2;
for (cont1 = 1; cont1 < miarreglo.Length; cont1++)
{
aux = miarreglo[cont1];
for (cont2 = cont1 - 1; cont2 >= 0 && miarreglo[cont2]
> aux; cont2--)
{
miarreglo[cont2 + 1] = miarreglo[cont2];
miarreglo[cont2] = aux;
}
}
//para imprimirlo
for (int i = 0; i < filas; i++)
{
Console.WriteLine("[" + miarreglo[i] + "]");
}
break;
case 3:
Console.WriteLine("3.- Insercion");
int auxi, j;
for (int i = 0; i < miarreglo.Length; i++)
{
auxi = miarreglo[i];
j = i - 1;
while (j >= 0 && miarreglo[j] > auxi)
{
miarreglo[j + 1] = miarreglo[j];
j--;
}
miarreglo[j + 1] = auxi;
}
//para imprimirlo
for (int i = 0; i < filas; i++)
{
Console.WriteLine("[" + miarreglo[i] + "]");
}
break;
case 4:
Console.WriteLine("4.-burbuja");
int m = 0;
for (int x = 1; x < filas; x++)
9
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos
{
for (int y = 0; y < filas - 1; y++)
{
if (miarreglo[x] < miarreglo[y])
{
m = miarreglo[x];
miarreglo[x] = miarreglo[y];
miarreglo[y] = m;
}
}
}
//para imprimirlo
for (int r = 0; r < filas; r++)
{
Console.WriteLine("{0}.-{1}", r + 1, miarreglo[r]);
}
break;
case 5:
Console.WriteLine("5.- shell");
int salto = 0;
int sw = 0;
int auxili = 0;
int e = 0;
salto = miarreglo.Length / 2;
while (salto > 0)
{
sw = 1;
while (sw != 0)
{
sw = 0;
e = 1;
while (e <= (miarreglo.Length - salto))
{
if (miarreglo[e - 1] > miarreglo[(e - 1) +
salto])
{
auxili = miarreglo[(e - 1) + salto];
miarreglo[(e - 1) + salto] = miarreglo[e -
1];
miarreglo[(e - 1)] = auxili;
sw = 1;
}
e++;
}
}
salto = salto / 2;
}
1
0
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos
//para imprimirlo
for (int r = 0; r < filas; r++)
{
Console.WriteLine("{0}.-{1}", r + 1, miarreglo[r]);
}
break;
case 6:
Console.WriteLine("6.- rapida o quick");
Array.Sort(miarreglo);
foreach (int str in miarreglo)
Console.WriteLine(" " + str); // lo imprime
break;
case 7:
Console.WriteLine("salir");
break;
default:
Console.WriteLine("default");
break;
}
Console.WriteLine("si desea buscar un elemento del arreglo presione 1
sino 2 (salir)");
int opcion2 = Convert.ToInt32(Console.ReadLine());
switch (opcion2)
{
case 1:
Console.WriteLine("¿que numero desea buscar?:");
int numbuscar = int.Parse(Console.ReadLine());
int lll=0, hhh=filas,mmm=0;
bool found = false;
while (lll<=hhh && found == false)
{
mmm=(lll+hhh)/2;
if (miarreglo[mmm]== numbuscar)
found = true;
if (miarreglo[mmm]>numbuscar)
hhh=mmm-1;
else
lll=mmm+1;
}
if (found == false)
{
Console.WriteLine("el elemento {0} no esta en el
arreglo",numbuscar);
}
else
1
1
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos
{
Console.WriteLine("el elemento {0} esta en la posicion:
{1}",numbuscar, mmm+1);
}
break;
case 2:
Console.WriteLine("salir");
break;
default:
Console.WriteLine("default");
break;
}
Console.ReadLine();
}
}
}
1
2