Actividad 2 - Algoritmos y Estructura de Datos

Nombre de la materia Algoritmos y estructuras de datos Nombre de la Licenciatura Lic. Ing. Sistemas Computacionales Nomb

Views 336 Downloads 2 File size 412KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Nombre de la materia Algoritmos y estructuras de datos Nombre de la Licenciatura Lic. Ing. Sistemas Computacionales Nombre del alumno Alejandro Bautista Ló pez Matrícula 010230164 Nombre de la Tarea Tarea 2 Unidad 1 Estructuras está ticas de datos Nombre del Profesor José Martin Osuna Flores Fecha 16-03-2020

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.

el

método

(valor 1 punto.) 

Ordene

el

arreglo

por

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

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: []

= new [];

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(); for(int i=0; i= a; b--) { if (vector[b - 1] > vector[b]) { t = vector[b - 1]; vector[b - 1] = vector[b]; vector[b] = t; } } } public void Imprimir() { Console.WriteLine("Numeros ordenados en forma ascendente"); for (int f = 0; f < vector.Length; f++) {

5

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

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

");

} public void busqueda(int num) { int l = 0, h = 9; int m = 0; bool found = false; while (l 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.

(Valor 1.0 punto) 

Solicite los elementos a almacenar en el arreglo.

(Valor 1.0 punto) 

Muestre el contenido del arreglo.

(Valor 2.0 puntos) 

Ordene el arreglo por el método seleccionado.

(Valor 1.0 punto) 

Muestre el arreglo ordenado.

(Valor 1.0 punto) 

Solicite la búsqueda de un elemento

(Valor 2.0 punto) 

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

                   

using using using using using using

System; System.Collections.Generic; System.Linq; System.Text; System.Threading.Tasks; 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[(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 (lllnumbuscar) 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