You are on page 1of 10

Nombre de la materia

Algoritmos y estructuras de datos

Nombre de la Licenciatura
Ingenieríía en Sistemas Computacionales

Nombre del alumno


Victor Hugo Martíínez Becerril

Matrícula
000564942

Nombre de la Tarea
Tarea 2

Unidad 1
Estructuras estaí ticas de datos

Nombre del Profesor


Sandra Castillo Loí pez

Fecha
17/09/2017
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos

¿Sabías qué….?

El ordenamiento y búsqueda de datos son dos conceptos ampliamente utilizados en


computación ya que permiten el manejo de grandes cantidades de datos para su
procesamiento lo que facilita la realización de tareas que pudieran parecer muy complejas.

ACTIVIDAD 2

Objetivos:

 Analizar el funcionamiento y las características de los métodos de ordenación y


búsqueda.

 Estructurar algoritmos que resuelvan situaciones que requieran ordenamiento y


búsqueda de datos.

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

¿Cómo entregar nuestra tarea?

-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.

-Envía el archivo en C# comprimido a tu profesor.

Forma de evaluación:

Criterio Ponderación

Presentación 10%

Desarrollo del ejercicio: 90%

 Solicite al usuario introducir la longitud


del arreglo a crear. (valor 1 punto.)

 Solicite los elementos a almacenar en


el arreglo. (valor 1 punto.)

 Muestre el contenido del arreglo.


(valor 1 punto.)

 Ordene el arreglo por el método


seleccionado. (valor 2 puntos.)

 Muestre el arreglo ordenado. (valor 1


punto.)

 Solicite la búsqueda de un elemento


(valor 1 punto.)

 Indique la posición en que se localiza


el elemento buscado. (valor 2 puntos.)

Introducción:

3
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos

Los arreglos ordenan datos en forma secuencial, y tambien resulta necesario que los datos
estén ordenados para su procesamiento. Para eso contamos con algoritmos de
ordenamiento básico, son recomendables para pequeñas cantidades de datos, y nos
permitirán ordenar dichos datos.

Los algoritmos de ordenamiento básico son:

-Selección

-Inserción

-Burbuja

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>];

Por ejemplo, si se desea crear un arreglo de 8 números enteros se hace de la siguiente


forma:
int [] numeros = new int [8];

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].

int [] elementos = new int[]{5,4,3,2,1};


int x = elementos[2];
Console.WriteLine(x); //Se imprime 3

Localizar un elemento en un arreglo (para el caso de un arreglo tamaño 10):

Console.WriteLine("Ingrese elemento que desea buscar en el arreglo");


elemento=Console.ReadLine();

4
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos

for(int i=0; i<10;i++)


if(arreglo[i]==elemento)
Console.WriteLine ("El elemento se encuentra en la posicion:{0}",posicion);
Console.ReadLine();

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;

public void Cargar()


{
Console.WriteLine("Usando el modo Burbuja");
Console.Write("Ingresa longitud de vector: ");
string linea;
linea = Console.ReadLine();
int num;
num = int.Parse(linea);
vector = new int[num];
for (int f = 0; f < vector.Length; f++)
{
Console.Write("Ingresa el numero " + (f + 1) + ": ");
linea = Console.ReadLine();
vector[f] = int.Parse(linea);
}
}

public void MetodoBurbuja()


{
int t;
for (int a = 1; a < vector.Length; a++)
for (int b = vector.Length - 1; b >= a; b--)
{
if (vector[b - 1] > vector[b])
{
t = vector[b - 1];
vector[b - 1] = vector[b];
vector[b] = t;
}
}

5
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos

}
public void Imprimir()
{
Console.WriteLine("Numeros ordenados en forma ascendente");
for (int f = 0; f < vector.Length; f++)
{
Console.Write(vector[f] + " ");
}
Console.ReadKey();
}

public void busqueda(int num)


{
int l = 0, h = 9;
int m = 0;
bool found = false;
while (l <= h && found == false)
{
m = (l + h) / 2;
if (vector[m] == num)
found = true;
if (vector[m] > num)
h = m - 1;
else
l = m + 1;
}
if (found == false)
{ Console.Write("\nEl elemento {0} no esta en el arreglo", num); }
else
{ Console.Write("\nEl elemento {0} esta en la posicion: {1}", num, m + 1); }
}
public void Imprimir1()
{
for (int f = 0; f > vector.Length; f++)
{
Console.Write(vector[f] + " ");
}
}
static void Main(string[] args)
{
Burbuja pv = new Burbuja();
pv.Cargar();
pv.MetodoBurbuja();
pv.Imprimir();
pv.Imprimir1();
Console.Write("\n\nQue elemento buscas: ");
int num = int.Parse(Console.ReadLine());
pv.busqueda(num);
Console.ReadKey();
}
}
}

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)

 Solicite al usuario introducir la longitud del arreglo a crear.

int[,] arreglo;
Console.WriteLine("Escribe el tamaño del arreglo:");

(Valor 1.0 punto)


 Solicite los elementos a almacenar en el arreglo.
Console.Write("Ingresa Los elementos a almacenar en el arreglo: ");

(Valor 1.0 punto)

 Muestre el contenido del arreglo.


string linea;
linea = Console.ReadLine();
int num;
num = int.Parse(linea);
arreglo = new int[num];
for (int f = 0; f < arreglo.Length; f++)
{
Console.Write("Ingresa el numero " + (f + 1) + ": ");
linea = Console.ReadLine();
arreglo[f] = int.Parse(linea);
}
}

7
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos

(Valor 2.0 puntos)


 Ordene el arreglo por el método seleccionado.

public void MetodoBurbuja()

int t;

for (int a = 1; a < arreglo.Length; a++)

for (int b = arreglo.Length - 1; b >= a; b--)

if (arreglo[b - 1] > arreglo[b])

t = arreglo[b - 1];

arreglo[b - 1] = arreglo[b];

arreglo[b] = t;

(Valor 1.0 punto)


 Muestre el arreglo ordenado.

public void Imprimir()


{
Console.WriteLine("Numeros ordenados en forma ascendente");

8
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos

for (int f = 0; f < arreglo.Length; f++)


{
Console.Write(arreglo[f] + " ");
}
Console.ReadKey();
}

(Valor 1.0 punto)


 Solicite la búsqueda de un elemento
static void Main(string[] args)
{
Burbuja pv = new Burbuja();
pv.Cargar();
pv.MetodoBurbuja();
pv.Imprimir();
pv.Imprimir1();
Console.Write("\n\nQue elemento buscas: ");
int num = int.Parse(Console.ReadLine());
pv.busqueda(num);
Console.ReadKey();
}

(Valor 2.0 punto)

9
Unidad 1: Estructuras estáticas de datos
Algoritmos y estructuras de datos

 Indique la posición en que se localiza el elemento buscado.

public void busqueda(int num)


{
int l = 0, h = 9;
int m = 0;
bool found = false;
while (l <= h && found == false)
{
m = (l + h) / 2;
if (arreglo[m] == num)
found = true;
if (arreglo[m] > num)
h = m - 1;
else
l = m + 1;
}
if (found == false)
{ Console.Write("\nEl elemento {0} no esta en el arreglo", num); }
else
{ Console.Write("\nEl elemento {0} esta en la posicion: {1}", num, m + 1); }
}

10