Está en la página 1de 29

Objetivo de la sesión:

Describir las operaciones básicas sobre las estructuras estáticas, con el


objetivo de representar el almacenamiento de información a través de la
estructura de un archivo, al igual que analizar algoritmos de ordenación y
búsqueda.

Asignatura: Algoritmos y estructuras de datos.


Tema: Estructuras estáticas de datos.
Profesor: M.T.I. Francisco Ramón Santos.
¿Qué son los archivos?
¿Qué son los archivos?

Son estructuras de datos homogéneos almacenados en un soporte físico de


una computadora, como un dispositivo magnético, siendo unidades lógicas
de información.
Los archivos…

• Los archivos existen una vez que finaliza el proceso que los crea.
• Son útiles para resguardar datos.
• Están formados por registros lógicos, los cuales representan a cada uno
de los elementos o datos almacenados.
• Cada registro puede estar formado por una serie de campos, los cuales
pueden ser de diferentes tipos de datos.
Operaciones de archivos básicas en C#

Para manipular los archivos se realizan tres operaciones básicas:

• Abrir el archivo.
• Leer datos y/o escribir datos en él.
• Cerrar el archivo.
Primera pregunta

Explica con tus propias palabras, ¿Cuál crees que haya sido la necesidad
principal de implementar archivos y almacenarlos en unidades físicas?
Operaciones de creación de archivos en C#

La clase StreamWriter, es la clase que representa a un archivo en el que


podemos escribir.

Los archivos de textos se crean con el método CreateText, que pertenece a


la clase File.

Para escribir en el archivo, se emplean Write y WriteLine, al igual que en la


consola.

Al finalizar el programa, siempre se tiene que cerrar el archivo con Close,


de lo contrario podrían existir datos si almacenar.
Operaciones de creación de archivos en C#

using System;
using System.IO; // Para StreamWriter
public class Creacionachivo
{
public static void Main()
{
StreamWriter archivo;
archivo = File.CreateText("prueba.txt");
archivo.WriteLine("Primera linea");
archivo.Write("Segunda linea");
archivo.WriteLine(" y esto se coloca en la segunda linea tambien");
archivo.Close();
}
}
Operaciones de lectura de archivos en C#

StreamReader, es el método para leer un archivo. Si el archivo ya existe,


usaremos OpenText, para leer el archivo ReadLine como lo hacemos en
consola. Finalmente, se tiene que cerrar el archivo con Close

using System;
using System.IO; // Para StreamReader
public class Leerarchivo
{
public static void Main()
{
StreamReader archivo;
string linea;
archivo = File.OpenText("prueba.txt");
linea = archivo.ReadLine();
Console.WriteLine(linea);
Console.WriteLine(archivo.ReadLine());
archivo.Close();
Console.ReadLine();
}
}
Operaciones de lectura de inicio a fin en C#

En la práctica común, se requiere leer el contenido de un archivo de


principio a fin y no sólo una frase o registro del archivo, sino procesar todo
su contenido. Entonces, si queremos procesar todo un archivo, esta lectura
y comprobación debe ser repetitiva.
Operaciones de lectura de inicio a fin en C#

using System;
using System.IO; // Para StreamReader
public class Lecturafinal
{
public static void Main()
{
StreamReader archivo;
string linea;
archivo = File.OpenText("prueba.txt");
do
{
linea = archivo.ReadLine();
if (linea != null)
Console.WriteLine(linea);
}
while (linea != null);
archivo.Close();
Console.ReadLine();
}
}
Algoritmos de ordenación y búsqueda
¿Qué es la ordenación?

Es una operación consistente en disponer un conjunto —estructura— de


datos en algún determinado orden con respecto a uno de los campos de
elementos del conjunto.

Los métodos de ordenación se pueden dividir en 2 grandes grupos:

• M. Directos: Burbuja, Selección, Inserción.


• M. Indirectos: Shell, Quicksort, Mezcla y Radixsort.
Ordenación por intercambio

El algoritmo de ordenación tal vez más sencillo sea el denominado de


intercambio que ordena los elementos de una lista en orden ascendente.
Este algoritmo se basa en la lectura sucesiva de la lista a ordenar,
comparando el elemento inferior de la lista con los restantes y efectuando
intercambio de posiciones cuando el orden resultante de la comparación
no sea el correcto.
Ordenación por intercambio
Ordenación por selección
Considérese el algoritmo para ordenar un array A de enteros en orden
ascendente, es decir, del número más pequeño al mayor. Si el array A tiene
n elementos, se trata de ordenar los valores del array de modo que el dato
contenido en A[0] sea el valor más pequeño, el valor almacenado en A[1] el
siguiente más pequeño, y así hasta A[n-1], que ha de contener el elemento
de mayor valor.
Ordenación por inserción
El método de ordenación por inserción es similar al proceso típico de
ordenar tarjetas de nombres (cartas de una baraja) por orden alfabético,
que consiste en insertar un nombre en su posición correcta dentro de una
lista o archivo que ya está ordenado. Así el proceso en el caso de la lista de
enteros A = 50, 20, 40, 80, 30.
Ordenación por burbuja
La técnica utilizada se denomina ordenación por burbuja u ordenación por
hundimiento debido a que los valores más pequeños «burbujean»
gradualmente (suben) hacia la cima o parte superior del array de modo
similar a como suben las burbujas en el agua, mientras que los valores
mayores se hunden en la parte inferior del array. La técnica consiste en
hacer varias pasadas a través del array. En cada pasada, se comparan
parejas sucesivas de elementos. Si una pareja está en orden creciente (o los
valores son idénticos), se dejan los valores como están. Si una pareja está
en orden decreciente, sus valores se intercambian en el array.
Ordenación por burbuja
Segunda pregunta

De los métodos directos hasta el momento mencionados, describe ... ¿Cuál


para ti es el mejor y por qué?.
Métodos Indirectos

Ordenación por Shell: Se considera que el método Shell es una mejora de los
métodos de inserción directa. Generalmente se toma como salto inicial n/2 (siendo
n el número de elementos), luego se reduce el salto a la mitad en cada repetición
hasta que el salto es de tamaño 1.

Ordenación por Quicksort: La idea del algoritmo es simple, se basa en la división


en particiones de la lista a ordenar, por lo que se puede considerar que aplica la
técnica divide y vencerás. El método se basa en dividir los n elementos de la lista a
ordenar en dos partes o particiones separadas por un elemento: una partición
izquierda, un elemento central denominado pivote o elemento de partición, y una
partición derecha.
¿Qué es la búsqueda?

La búsqueda de un elemento dentro de un array es una de las operaciones


más importantes en el procesamiento de la información y permite la
recuperación de datos previamente almacenados. Todos los algoritmos de
búsqueda tienen dos finalidades:

• Determinar si el elemento buscado se encuentra en el conjunto en el


que se busca.
• Si el elemento está en el conjunto, hallar la posición en la que se
encuentra.
Tipos de búsquedas

Búsqueda secuencial: Busca un elemento de una lista utilizando un valor


destino llamado clave. En una búsqueda secuencial (a veces llamada
búsqueda lineal), los elementos de una lista o vector se exploran (se
examinan) en secuencia, uno después de otro. El método de búsqueda
lineal funcionará bien con arrays pequeños o no ordenados. La eficiencia
de la búsqueda secuencial es pobre.

Búsqueda binaria: Aplica para cualquier lista, Si la lista está ordenada, la


búsqueda binaria proporciona una técnica de búsqueda mejorada. Una
búsqueda binaria típica es la búsqueda de una palabra en un diccionario.
Dada la palabra, se abre el libro cerca del principio, del centro o del final
dependiendo de la primera letra del primer apellido o de la palabra que
busca.
Tercera pregunta

Expresa con tus propias palabras... ¿Qué diferencia existe entre un método
de ordenación y un método de búsqueda?.
¡IMPORTANTE!
Para obtener tus puntos extras por ingresar a esta open class es importante
dar respuesta a las 3 preguntas generadas a lo largo de la clase y considerar
lo siguiente:

1. Utilizar el formato de tareas UTEL para dar respuesta a las 3 preguntas


generadas.
2. Las preguntas deben de enviarse en el orden en que se fueron
presentando.
3. Subir las preguntas a través del espacio de PUNTOS EXTRAS en un lapso
no mayor a 6 días después de finalizada la clase, entregas posteriores a 6
días no genera puntos extras.
4. El documento debe de subirse bajo la siguiente nomenclatura:
ApellidoPaterno_nombre(s)_OCS2.doc
Ejemplo: Ramón_Francisco_OCS2.doc
Evaluación Express

a) Algoritmos cuyo objetivo es disponer de un ( ) StreamWriter.


conjunto o de la estructura de datos, algún
determinado orden con respecto a uno de los ( ) Métodos de ordenación
campos de elementos del conjunto. directos.

b) Burbuja, selección e inserción son ejemplos de: ( ) Archivo.

c) Es la clase que representa a un archivo en el que ( ) Métodos de ordenación.


podemos escribir.

d) Son estructuras de datos homogéneos ( ) StreamReader.


almacenados en un soporte físico de una
computadora, siendo unidades lógicas de ( ) Métodos de búsqueda.
información.

e) Algoritmos cuya operación más importantes es la


recuperación de datos previamente almacenados.
Conclusión

La ordenación, es la operación de organizar un conjunto de datos en algún orden o


secuencia específica, tal como creciente o decreciente para datos numéricos o
alfabéticamente para datos de tipo carácter. Operaciones típicas de ordenación son: lista
de números, archivos de clientes de banco, nombres en una agenda telefónica. la
ordenación significa poner objetos en orden ascendente o descendente. El propósito
final de la clasificación es facilitar la manipulación de datos en un vector.

La búsqueda, es la recuperación de información, como ya se ha comentado, es una de


las aplicaciones más importantes de las computadoras. La búsqueda se refiere a la
operación de encontrar la posición de un elemento entre un conjunto de elementos
dados: lista, tabla o fichero. Existen diferentes algoritmos de búsqueda. El algoritmo
elegido depende de la forma en que se encuentren organizados los datos.
Referencias

Referencias bibliográficas:

Deitel & Deitel (2007). Cómo programar en C#. México: PEARSON Prentice Hall

Algoritmos de ordenación y búsqueda (s.d), recuperado de:


apps.utel.edu.mx/syllabus/cloud/visor.php?container=L1IS104_1035_615_35228_0
&object=M%C3%A9todos%20de%20Ordenaci%C3%B3n.pdf
MTI Francisco Ramón Santos
Materia: Algoritmos y estructuras de datos
Usuario: 019852851

También podría gustarte