Sei sulla pagina 1di 36

Open Class Regular

Estructuras estáticas 2: Archivos y


algoritmos de búsqueda y ordenamiento
(Semana 2)

Prof. Dante Arias Torres


Contenido

•Objetivos
•Introducción
•Desarrollo
• Archivos
• Algoritmos de ordenamiento
• Algoritmos de búsqueda
• Preguntas
•Conclusiones
•Evaluación de la clase
Objetivo:

Entender como se realiza el manejo de archivos y


como implementar los métodos de ordenamiento
y búsqueda en C#.
INTRODUCCIÓN
•Qué algoritmos de ordenamiento conocemos?
•¿Qué algoritmos de búsqueda ?
DESARROLLO DEL TEMA
using System;
using System.IO;
namespace FileApplication
{
class Program
{
static void Main(string[] args) Como escribir en un archivo
{
string linea;
using (StreamWriter sw = new StreamWriter("names.txt"))
{
Console.WriteLine("Introduce el texto a guardar :"); // Prompt
while (true)
{
linea = Console.ReadLine(); // Get string from user
sw.WriteLine(linea);
if (linea == "exit") // Check string
{
break;
}
}
}
Como implementar un arreglo en C#
// Read and show each line from the file.
string line = "";
using (StreamReader sr = new StreamReader("names.txt"))
{
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
} Como leer de un archivo
Console.ReadKey();
}
}
}
Preguntas para ganar puntos extras

Preguntas para ganar puntos extras en esta open class

¿Que instrucciones se requieren para el manejo de archivos


en C#?
Donde puedo ejecutar mi programa?
Ejecutando mi programa con archivos
Métodos de Búsqueda y Ordenación

Búsqueda lineal
Búsqueda binaria
Esquemas sencillos de ordenación

Algoritmo de la Burbuja: Bubble Sort

Algoritmo de Inserción: Insertion Sort

Algoritmo de Selección: Selection Sort


Métodos de Búsqueda y Ordenación

Los problemas más comunes en la informática son la


búsqueda y la ordenación.

Número de preguntas diarias en Google: 400 millones (2006)

Por lo tanto, la eficiencia de la búsqueda es importante

La ordenación consiste en ordenar los elementos de un


conjunto con el fin de acelerar la búsqueda
Búsqueda lineal

Encontrar un elemento determinado dentro de una colección


dada.

La búsqueda se realiza sobre una estructura de datos de


tamaño fijo y conocido, por ejemplo, un arreglo.

Los algoritmos sirven para hacer búsquedas sobre cualquier


tipo de datos, siempre que sea posible realizar
comparaciones (‘igualdad’, ‘menor que’) sobre este tipo.

¿Porqué se llama lineal?


Búsqueda lineal
Búsqueda binaria

La búsqueda lineal es la primera idea que ocurre para el


problema de la búsqueda.

Sin embargo, su eficiencia puede ser mejorado de forma


considerable.

Para hacerlo es necesario suponer que los elementos del


vector estén ordenados.

Suponemos que el vector esta ordenado de forma ascendente


(de menor a mayor).
Búsqueda binaria

Si el vector está ordenado (de manera ascendente o


descendente), es posible aplicar búsqueda binaria.

La idea es hacer servir la propiedad adicional del vector para


acelerar el proceso de búsqueda:

1) Dividir el vector en dos partes iguales.

2) Si el elemento en el centro del vector es mayor que el


elemento buscado, buscar en la primera mitad.

3) Si el elemento en el centro del vector es menor que el


elemento buscado, buscar en la segunda mitad.
Búsqueda binaria
Búsqueda binaria
Eficiencia de la búsqueda

¿Cuál de las dos opciones de búsqueda (lineal, binaria) es más


óptimo?
Preguntas para ganar puntos extras

Preguntas para ganar puntos extras en esta open class

¿Explique el funcionamiento de la busqueda binaria?


Esquemas sencillos de ordenación

Hemos visto como la búsqueda se puede realizar con más


eficiencia si los elementos están ordenados.

Si necesita buscar muchos datos en un mismo conjunto, vale la


pena ordenar los elementos primero.

Igual que para la búsqueda, la ordenación se puede realizar


sobre cualquier tipo de elementos, siempre que se puedan
comparar (‘menor que’, ‘mayor que’, etc).
Esquemas sencillos de ordenación

Como la ordenación es un problema importante, existen un


gran número de algoritmos de ordenación.

Los algoritmos existentes se pueden utilizar en diferentes


estructuras de datos (p.ej., un arreglo).

Imponen diferentes tipos de requerimientos sobre los datos


a ordenar.

También varía su eficiencia, tanto a nivel de memoria como


a nivel de tiempo de ejecución.
Esquemas sencillos de ordenación

En general, los algoritmos más eficientes son más


complejos y menos intuitivos. Por ejemplo:

Los algoritmos Burbuja, Inserción, y Selección son muy


sencillos, aunque no muy eficientes.

Los algoritmos MergeSort y QuickSort son tan eficientes


como se puede esperar para un algoritmo de ordenación,
pero menos intuitivos.
Algoritmo de la Burbuja: Bubble Sort
Algoritmo de la Burbuja: Bubble Sort
Algoritmo de Inserción: Insertion Sort
Algoritmo de Selección: Selection Sort
Eficiencia de la ordenación

¿Cuál es la eficiencia de los algoritmos sencillos de


ordenación?

Idea: contar el número de instrucciones que cada algoritmo


realiza. Hay que tomar en cuenta que las instrucciones
dentro de un bucle o ciclo se repiten varias veces
Eficiencia de la ordenación
Preguntas para ganar puntos extras

Preguntas para ganar puntos extras en esta open class

¿Explique el funcionamiento del algoritmo de inserción ?


CONCLUSIONES
Conclusiones

•En esta sesión se analizaron:


• Archivos
• Algoritmos de búsqueda
• Algoritmos de ordenamiento

•Recordatorio de actividades por


modalidad
Preguntas ?
Liga para descargar la presentación

https://1drv.ms/p/s!AspP7TyBx7h1hcU0us1qfogM_gwxPQ
Gracias y hasta la próxima

Potrebbero piacerti anche