Algoritmos y Estructuras de Datos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 23

ALGORITMOS Y ESTRUCTURAS DE DATOS: TEORÍA

13/8

Algoritmos: conjunto de pasos ordenados con el objetivo de resolver una situación o


problema.

Estructuras de datos: una manera de organizar los datos para llevar el algoritmo
correctamente y nos facilita el manejo de información.

DATOS VS INFORMACIÓN

● Datos: es la información que ingresa al programa.


● Información: es la salida del dato, ya procesada.
Ejemplo:

PROGRAMA

● Es un conjunto de instrucciones para realizar una actividad o resolver un problema,


se deben ejecutar una serie de acciones sobre determinados datos.
● Un sistema está compuesto por muchos programas.

Componentes

● Estructura de datos: datos organizados que se organizan y en otro momento se


transforman en base de datos
● Op primitivas y elementales: operaciones básicas que podemos hacer en un
problema. Ej: sumar, restar, sacar un promedio, etc
● Estructuras de control: define el formato o la forma en la que se escriben las
instrucciones, en qué orden.

Para llevar a cabo un programa necesitamos un lenguaje de programación. Con él nos


comunicamos con la computadora

COMPOSICIÓN DEL LENGUAJE:


● Alfabeto son los caracteres que admite el lenguaje
● Vocabulario las palabras que armamos con los caracteres
● Sintaxis son las reglas o formas en las que se escriben las líneas

Proceso de programación

● Elaborar implica hacer una serie de pasos secuenciales que comienzan con la
detección del problema y termina en la implantación del problema(poner en solución
o funcionamiento)

Pasos

1. Definir el problema: establecer que es lo que realmente tiene que hacer el


programa. Delimitar o acotar el problema para encontrar una solución.
2. Analizar el problema: una vez definido, analizamos los datos de entrada y salida.
Es una descomposición de la situación para entender que se quiere para llegar a
una solución. (¿QUÉ?)
3. Diseñar el programa: (¿CÓMO?) analizar cómo vamos a hacer para solucionar o
llevar adelante el paso anterior. Se define el algoritmo.

El algoritmo es una secuencia ordenada y cronológica de pasos que lleva a la solución


del problema. Se desarrolla en la etapa de diseño. Los pasos deben ser simples y precisos.

La prueba, se simula cómo funciona el algoritmo con datos para validar que funciona
correctamente y nos de los resultados que queremos,

4. Codificar el programa: Una vez listo el algoritmo, lo pasamos al lenguaje para que
lo entienda la computadora.

Elegimos el lenguaje de programación, solo convertimos las acciones del algoritmos en


lenguajes.

El programa codificado debe editarse, compilarse, probarse y depurarse.

Para que la máquina lo entienda al programa, debe pasarse a lenguaje de máquina


o código abierto.

5. Implantar el programa: poner en funcionamiento, entrando en operación o función.


6. Mantener el programa: verificar de forma cotidiana que funciona bien el programa,
que no hay errores, etc. Y solucionar, en el caso que no cumpla con lo requerido.
Además, actualizar el programa para que el sistema siga actual. Supervisión
permanente y continua para detectar posibles cambios o ajustes necesarios.

EL ALGORITMO:
podemos aplicar a situaciones de nuestra vida cotidiana. EJ: una receta de cocina,
instrucciones de un juego, abrir una cuenta de gmail, etc

Siempre vamos a utilizar estos 3 pasos:

**siempre ponemos la palabra fin

¿Es lo mismo algoritmo que programa?


➔ ALGORITMO: estructura en castellano estructurado, es la lógica
➔ PROGRAMA: estructura en un lenguaje de programación determinado

TÉCNICAS DE DISEÑOS DE PROGRAMAS

● Diagrama de flujo u organigrama: técnica gráfica que sirve para expresar el orden

● Pseudocódigo: técnica que emplea palabras en castellano (sentencias) que indican


la operación a realizar. No se usa cualquier palabra.

ESTRUCTURA DE UN PROGRAMA

Tratamos de hacer una escritura clara, ordenada y reservada

Programa nombredelprograma
VAR declaración de variables
INICIO
● acciones: paso a paso para resolver el problema
● //COMENTARIOS
FIN PROGRAMA

*respetar tabulaciones para que esté estéticamente ordenado (ordenado a la vista)


*palabras reservadas

Ejemplos:

Programa calculadora
superficie,volumen : ENTERO
a+b //suma de a y b
contador=1 //inicializa contador

ASIGNACIÓN variable= expresión/variable/constante


➔ La acción asignar es destructiva porque destruye lo que tenemos en la izquierda
➔ No se puede asignar valores de distinto tipo de dato definido

ENTRADA Y SALIDA DE INFORMACIÓN

Las operaciones de entrada permite leer valores, desde periféricos de entradas, y


asignarlos a variables, se conocen como operadores de lecturas
Leer(lista de variables de entrada)

Las op de salida permiten mostrar valores (en periféricos de salida), se conocen como
operadores de escritura

Escribir (lista de variables/expresiones)

ESTILO DE PROGRAMACIÓN

● Además de seguir la sintaxis de un lenguaje y técnicas básicas de prog., es cuestión


de disciplina y orden de diseño
● Un buen estilo de programación hace a la calidad, legibilidad, mejor comprensión.
● Legible y de calidad

Ejemplo: si exportamos el software, hay que hacerlo legible para la otra persona y para que
si hay un problema pueda entender la otra persona

Calidad:

Los parámetros a considerar son:


● Funcionar correctamente
● Documentación es importante
● Eficiente dada rel. tiempo y espacio
● Correcto debe dar resultados correctos
● Flexibles para permitir cambios con ligeros toques
● Fiable: exactitud y precisión de los resultados
● Presentación: hacer programas legibles es importante usar
comentarios y sangrado/tabulación
A. ENSEÑAR A MANDAR UN MENSAJE DE WPP A UNA ABUELA

Definir problema

¿La app ya está instalada y configurada? Sí


¿La aplicación está abierta? No
¿Sabe cómo tiene agendado al destinatario? Sí
¿Qué tipo de mensaje se va a enviar? Un mensaje normal

Análisis del problema

● Entradas: mensaje ingresado, contacto, teléfono


● Salidas: mensaje enviado
● Procesador: Whatsapp

Diseño del programa

INICIO
1. Tener al teléfono y a la abuela cerca.
2. Mostrar ubicación de la aplicación en el celular (por donde entrar a wpp)
3. Indicamos el funcionamiento del ícono de la lupita
4. Apretamos el símbolo de la lupa
5. Escribimos el nombre de la persona a la que queremos mandarle el mensaje.
Aclaración: el nombre debe ser tal cual está agendada la persona.
6. Seleccionar el contacto
7. Se abrirá un chat con la opción de “Escribe un mensaje aquí” y seleccionamos esa
opción
8. Ingresamos el mensaje deseado
9. Seleccionar el ícono de “Enviar”
10. Indicamos el funcionamiento del doble tilde que aparece al enviar el mensaje
FIN
UNIDAD 2: TIPOS DE DATOS, OPERACIONES Y EXPRESIONES

Programa =
Estructura de datos + Operaciones primitivas elementales + Estructuras de control

Un dato es la representación de los objetos con los que opera una computadora. Las
estructuras de datos: representación interna de datos en la computadora. Pueden
manejarse como variables o como constantes.

dATO VARIABLE: CAMBIA DURANTE LA EJECUCIÓN DEL ALGORITMO


Constante: no cambia

Tipo de datos:
Numérico
1. Real
2. Entero

Cadena de carácter
1. alfabéticos,
2. alfanuméricos

Carácter 1 sola letra


● ejemplo: “A”, “#”, etc

Lógico sólo toma 2 valores, prendido apagado, V o F


● ejemplo: [V] [F]

Variables: cambian a lo largo del programa. Son todos los datos que se ingresa o genera o
calcula a partir de otros datos, debe identificarse y manejarse de forma de variable

Características
● Nombre: para identificarlo
● Contenido: valor de la variable
● Tipo de dato: especifica que dato es

REGLAS PARA NOMBRAR VARIABLES:

➔ Combinaciones de letras M y m, dígitos y guión bajo. NO acepta caracteres


especiales
➔ El nombre debe iniciar siempre con una letra
➔ No se usan las palabras reservadas
➔ Debe ser representativo con el objeto que representa
ej. no puede ser nnn un nombre, porque no dice nada
➔ Longitud máxima: 10 caracteres

Constantes: valores específicos que no varían durante la ejecución del algoritmo


Operaciones primitivas elementales:
acciones básicas que la computación puede

Declaraciones
Es una acción no ejecutable
Formatos:

CONSTANTE VARIABLE

CONST VAR
nombreconst = valor nomVariable1: TIPO DE DATO

ej. Const
PI= 3,14
MAXIMO=100
RESULTADO1=
APROBADO
RESULTADO2=
DESAPROBADO

LECTURA DE DATOS (entrada)


➔ Permite introducir datos
➔ Entradas desde periférico de entrada

Formato: Leer (nomVar1)

Se pueden usar muchas variables en el leer o un dato a la vez, es lo mismo

Leer (nombre, apellido)

Leer(nombre)
Leer (apellido)

ESCRITURA DE DATOS (salida)


➔ Salida a los datos de la computadora por periférico como pantalla, impresora,etc

Formato

Escribir (empleado, sueldo) //MUESTRA EN 1 LÍNEA

Escribir (“empleado”, nombre , “sueldo:$” , sueldo) //MUESTRA EN oración o cadena


OPERACIONES ARITMÉTICAS

suma
resta,
mult,
div,
exponenciación ^

OPERADOR CONCATENAR

➔+
➔ EJ: escribir( calle + número)
OPERADOR LÓGICO

● permiten condiciones complejas a partir de simples


● utilizamos las tablas de verdad
● descomponemos en prioridades más simples y resolvemos de izquierda a derecha
[Y]conjunción, and
[O] disyunción, or
[NO] de negación

OPERACIONES DE RELACIONES

<> >< <= >= =

Prioridades
● los paréntesis tienen prioridad 0, nos indican que resolver primero

Ej: n= (x+y)/(y-2)
● n es variable
● (x+y)/(y-2) es una expresión aritmética

sueldo= horasTrab * valorHora

20/8
Unidad 3: EStRUCTURAS DE CONTROL DE FLUJO

Un programa puede ser escrito utilizando solamente tres tipos de estructuras de


control: Secuenciales -Selectivas -Repetitivas

Secuenciales controla la ejecución en orden secuencial. Pueden ser como


declaración de variables, leer datos, escribir, mostrar,etc

Para elaborar un algoritmo siempre seguimos:


1. definir el problema
2. analizar el problema
3. diseñar el problema
La selección
● estructura que permite controlar la ejecución de acciones que requieren
condiciones para su realización
● según el resultado se sigue un camino u otro
● evaluar una condición y en función de la misma se realiza una función u
otra
Clasificación

Simples: cuando la condición es verdadera se ejecuta la acción y sino no se


ejecuta ninguna.

Doble:
permite elegir entre dos opciones en función del cumplimiento de una
determinada condición. Se ejecuta una u otra, pero nunca las dos a la vez.
Múltiple:
● Se evalúa una expresión que puede tomar múltiples valores.
● Existen más de dos alternativas posibles, es decir que en base a una
condición se pueden seguir más de 2 caminos.
● En el caso de selección múltiple se evalúa una expresión que podrá tomar
n valores distintos, según el resultado podrá seguir una de las n acciones
posibles.

Alternativas anidadas: tenemos una selección simple y dentro anidada otra, y


ésta a otra y así sucesivamente. Es decir, que luego de tomar una decisión y
señalar la correspondiente es necesario tomar otra decisión y así sucesivamente.
Pensar en un ejemplo donde podamos aplicar la selección

En la UTN se perdió la documentación recaudada de las personas de grupo etario


de 17 a 19 años de primer año. Se requiere un programa en el que se ingrese la
edad y el año de cursado para indicar si es necesario volver a presentar la
documentación o si no hace falta.

Programa DOCUMENTACIÓN
Var edad, año: ENTERO
Inicio
Escribir “Ingrese la edad”
Leer (edad)

Escribir “Ingrese año”


Leer (año)

Si edad <20 entonces


Si año ==1 entonces
Escribir “Presentar documentación”
Fin si
sino
Escribir “Documentación ya presentada”
Fin si

Fin DOCUMENTACIÓN

Estructuras repetitivas o bucles


● Instrucciones que se repiten cierto número finito de veces
● Se evalúan decisiones hasta que se detiene
● Se tiene que garantizar que dentro del bucle el estado de la variable
cambia hasta que sale del bucle
● Son estructuras que validan datos una vez ingresados
● Siempre se deben inicializar las variables para poder utilizarlas

Las estructuras repetitivas son:


Repetir Mientras Variar Iterar

REPETIR
● La condición sale cuando es verdadera
● Usamos el repetir para validar los datos de ingreso
● Por la salida del bucle, “cola inteligente”
Iteración al hecho de repetir la ejecución de una secuencia de acciones.

MIENTRAS:

➔ La condición sale cuando es F, es decir, cuando se deja de cumplir la


condición que mantiene a la variable en el bucle
➔ Es de cabeza inteligente
VARIAR
● las acciones se ejecutan tantas veces como se indica
● tiene condición de comienzo y fin
● se define un incremento variable constante o expresión aritmética
ej

VARIAR contador DESDE 1 HASTA num (variable)


SUMA= a+contador
FIN ENVIAR

ITERAR
● combinación de repetir y mientras
● salida cuando cond sea verdadera
● Se ejecutan las acciones 1 y luego se evalúa la condición, si la condición es
Falsa ejecuta las acciones 2. Luego va a ejecutar las acciones 1 y vuelve a
evaluar la condición y así sucesivamente.
COMPARACIÓN DE ESTRUCTURAS DE CONTROL

EJEMPLO:

Designar si son categoría A, en el caso que la persona sea menor de edad y


categoría B si son mayor de edad

PROGRAMA CATEGORÍA
VAR edad: ENTERO
INICIO
Escribir “Ingrese su edad”
Leer edad
SI edad<=0 entonces
Escribir “Error. Ingrese un número válido.”
Fin si
VARIAR edad desde 1 hasta 18
Escribir: “Usted pertenece a la categoría A”
FIN VARIAR

Mientras edad >18 hacer


Escribir: “Usted pertenece a la categoría B”
Fin mientras

FIN CATEGORÍA

PUESTA A PUNTO DE UN PROGRAMA/ENSAYO/DETERMINACIÓN

CONSiste en localizar, verificar y corregir los errores de programación


el objetivo es prevenir tantos errores como sea posible a la hora de ejecutar
un programa
FASES
1. Detección de errores
2. Depuración
a. Localización
b. Eliminación
3. Prueba
ERRORES COMUNES
De sintaxis se originan en la fase de compilación/ interpretación del programa y
se deben a causas propias de sintaxis, como escritura incorrecta, omisión del
signo
De lógica pueden detener la ejecución del programa o producir resultados
erróneos

Prueba:
● demuestran resultados obtenidos, hay que verificar que el resultado sea
correcto y conocido
● Las variables deben estar definidas(con valor) y declaradas(tipo de dato)
Validación de datos; que los datos sean correctos y estén dentro de un rangos
válido
Traza: indica la secuencia de instrucciones de las instrucciones de un conjunto de
valores. Puede ser secuencial (1,2,3,4,....)o repetitiva(1,2,3,1,2,3,1,2,3….)

Para hacer la prueba buscamos valores intermedios o neutros y valores extremos,


para evaluar todas las opciones.
Las tablas reflejan los estados de las variables a lo largo del programa

PARA LA SEMANA QUE VIENE IR EMPEZANDO LA UNIDAD 4

UNIDAD 4: Subprogramas, procedimientos y funciones

Si dividimos el programa principal en subprogramas, nos ayuda a


facilitarnos y mejorarnos la organización y resolución
Técnicas de programación
Modular:
se divide en módulos, que son independientes entre sí en cuanto a la
ejecución de su tareas, pero se relacionan entre sí(por ej. mediante
comunicaciones, comparten datos, etc). Existe un programa principal que
maneja o llama al resto de los subprogramas.
Estructurada: cada módulo se divide según métodos estructurados y su
posterior unión con procedimientos ascendente o descendentes
Las técnicas ayudan a facilitar el leer, escribir,verificar y mantener

Técnicas:
● Recurso abstracto: tarea creada por programadores para facilitar
procesos tediosos
● Diseño descendente(top-down): ir dividiendo en subprogramas
para que el problema sea más limitado y que se nos facilite la lógica.
Se tiene un programa principal que se llama a subprogramas. Ej:
programa FORMULARIO, 3 subprogramas: Ingreso de datos, Lectura,
Impresión de formulario
● Estructura básica: vistas anteriormente
○ selectiva
○ secuencial
○ repetitiva
Características
1. Un solo punto de entrada y salida del programa
2. Existen caminos que se pueden seguir y pasan por todas las partes del
programa
3. Todas las instrucciones son ejecutables, no existen lazos o bucles infinitos

Subprograma
Beneficios para trabajar
➔ menos escritura (reutilización)
➔ mayor calidad en la lectura
➔ mayor posibilidad de reutilización
➔ mayor facilidad para modificar sin alterar todo el programa (relacionado
con la reutilización, solo modificas 1 sola vez)
➔ mejora la distribución de tareas entre programas
El programa principal UNO contiene los subprogramas DOS y CUATRO. A su vez el
subprograma DOS contiene al subprograma TRES. Y el CUATRO contiene a
CINCO y SEIS.

ENCABEZAMIENTO DE SUBPROGRAMAS

Encabezamiento que contiene:


● Tipo de subprograma: Procedimiento o Función.
● Nombre de subprograma
● Lista de parámetros o argumentos que posibilitan la comunicación entre
el subprograma y el programa que lo invoca.

A través de las listas de parámetros se pasan valores que pueden ser constantes,
variables, expresiones, funciones
la correspondencia entre valores de llamada y subprograma deben mantener el
mismo tipo de dato, posición y cantidad
Parámetros: reales o argumentos de llamada
Parámetros de subprograma: parámetro formal

Los parámetros puede ser de


● entrada: los que el programa envía al subprograma
● salida: los que el subprograma devuelve con un determinado valor
● e/s: el subprograma los modifica y salen distintos
Los parámetros que se pasan los valores o direcciones

PASAJE DE PARÁMETROS
Por referencia:
● se comunican los programas
● en vez de escribir el valor se pasa la direccion donde se encuentra el valor
● se coloca “por ref”
● se trae, ejecuta el programa, modifica y sale nuevamente el dato
modificado (ejemplo caso sueldo o suma de lados)

Por valor protegido


● es la forma más simple comunica programas enviando una copia de la
variable original
● El subprograma recibe los valores de los parámetros, como valores iniciales,
ejecuta sus acciones, pero no los devuelve con otros valores. Si sufre alguna
modificación no afecta la variable original del programa principal.
● ejemplo nombre y factura en el 2do ejemplo de excel
● ejemplo: cuando pasa de vacío a tener un valor o cuando se modifica
mediante una operación
VARIABLES LOCALES Y GLOBALES

Globales: se declaran y definen en el programa principal y su alcance es amplio,


pues tiene influencia tanto en el programa principal como en todos los
subprogramas.

Locales: se declaran y definen en el subprograma, pero existe sólo dentro del


subprograma y desaparece cuando se regresa el control al programa principal.

PROCEDIMIENTOS Y FUNCIONES

Si el subproblema tiene que devolver un solo resultado y no debe realizar


operaciones de escritura/lectura es conveniente hacer una función.
En el procedimiento se permite lectura y escritura, pero no puedo hacer esas
operaciones con la función

Procedimientos: como se escriben


PROCEDIMIENTOS
Cómo se escribe el procedimiento:
PROCEDIMIENTO nombre (lista parámetros formales)
VAR (declaración de variables locales)
INICIO
Acciones Programa AA Subprograma BB Subprograma CC
FINPROCEDIMIENTO

UNIDAD 5: ARREGLOS

Introducción:
● Hasta ahora deminitos tipo de datos simples
Que es una estructura? es un tipo de dato formado por un conjunto de
elementos del mismo tipo de datos
un dato de tipo estructurado puede almacenar más de un elemento , todos
los datos deben ser del mismo tipo
Ej: tengo un programa que calcula el promedio de cada alumno. Para
calcular el promedio podemos usar un dato estructurado que sea nota y
serán todas de tipo real.
Pueden ser
Estáticas: se define su tamaño antes de que se ejecute el programa ej
arreglos

Dinámicas no tienen la limitación de las dinámicas

Arreglo: conjunto finito y ordenado de elementos homogéneos

● Finito: porque es un numero determinado


● Ordenado: sigue una secuencia y pueden identificarse
● Homogéneos todos los elementos son del mismo tipo de dato
Dimensionen en las que se clasifican:
unidimensionales:
bidimensionales:
multidimensionales: se pueden crear más de ter dimensiones pero se vuelve más
complicado trabajar

A. UNIDIMENSIONALES: VECTORES
es una variable estructurada de una dimensión formada por:
Si tienen una dimensión, se los denomina vectores
● Nombre del vector A
● Tamaño n
● Índice o posición: lugar que ocupa en la estructura de datos

A1
A2

A3

...

...

A[n]
Declaración de variables:

VAR nombre[tamaño]: tipo de dato

Índice
● Nombre identifica la variable como vector
● Tamaño: número entero que indica la cantidad de elementos que tiene el
arreglo
● Dimensión:
● Tipo de dato:
● Como es unidimensional tiene un solo subíndice: unidimensional
● Nos referimos al vector completo o a un único elemento, ya sea para
asignar un valor o recuperar nombre [subíndice]
● debe ser 1<= subíndice<= tamaño
● debe ser siempre de tipo entero. Puede ser una variable, una constante o
una expresión cuyo resultado sea un entero.

¿Qué podemos hacer con los vectores? asignación, lectura/escritura, recorrido,


ordenamiento, búsqueda, etc

Asignación
Asigna el valor x al i_esimo elemento del vector
NOMBRE [i]=x
También se pueden asignar valores al vector

VARIAR i desde n hasta m


nombre[i]=n
FINVARIAR

● es importante destacar que la cantidad de elementos debe ser menor a 12

Lectura y escritura
Leer: se ingresa el valor desde el periférico de entrada que almacena el elemento
seleccionado
leer (nombre [i])
Escribir Se muestra el valor almacenado en el periférico de salida
acceso secuencial o recorrido
Escribir (nombre [i] )
para escribir
VARIAR i desde n hasta m
Escribir (nombre [i] )
FINVARIAR
para leer
VARIAR i desde n hasta m
leer (nombre [i])
FINVARIAR

para asignar
VARIAR i desde n hasta m
nombre[i]=n
FINVARIAR

ARREGLOS BIDIMENSIONALES: matrices

● podemos guardar más de un tipo de dato con filas y columnas

Matrices
● Nombre de la matriz: A
● Número de elementos: nxm
● filas n
● columnas m

A[1,1] A[1,2] …. A[1,m]

A[2,1]

A[n,1]

Índice

Nos referimos a la matriz completa o a un único elemento para asignar un valor o


recuperar. Debemos hacerlo así:

Nombre [sibindicefila, subindicecolumna]

● 1 <= subindicefila <=tamaño fila

● 1 <= subindicecolumna <=tamaño fcolumna

● Puede ser una variable, constante o expresión de tipo ENTERO


Notaciones: Ejemplo nota [1,2] o nota [1] [2]

Operaciones
● leer, escribir, asignar, recorrido

Recorrido mediante una estructura anidada, necesito uno que me permita


recorrer filas y columnas
Si no hay nada definido podemos usar variar

ARREGLO TRIDIMENSIONAL
Matriz [n,m,p] donde p es la cantidad de planos, n la cantidad de filas y m la
cantidad de columnas
Declaracion

Índice
usamos los mismos de antes, solo que agregamos lo del plano

Operaciones
asignación, lectura, escritura y recorrido
Para el recorrido utilizamos bucles repetitivos anidados para procesar filas,
columnas y planos
Sección transversal: toma datos de una columna completa ej. A(2,*) todas las
columnas de la fila 2. A (1;*) tomamos todos los datos almacenados en la columna
1
Transpuesta:
● invirtiendo las posiciones del subíndice
● B (i,j) —-Bt (j,i)
● Si el arreglo era días por semanas, la transpuesta es semans por días

Búsqueda y ordenamiento
● localización de un elemento
● secuenciamiento de elementos teniendo en cuenta un determinado
criterio
● siempre es más fácil encontrar un elemento

Búsqueda lineal o secuencial

Es el método más simple, se debe leer consecutivamente un elemento tras otro


hasta que coincidan el valor buscado con el valor examinado.
La búsqueda termina exitosa cuando se ha encontrado el elemento buscado, o
termina sin éxito, cuando se llega al final del arreglo y no se encontró el elemento.

Búsqueda binaria
Cuando el número de elementos del conjunto sobre el cual queremos buscar es
grande la búsqueda lineal es ineficiente
Es necesario que los elementos estén ordenados en el arreglo para hacer la
búsqueda binaria.

Antes deben estar ordenados y sirve para grandes cantidades de datos


Es una búsqueda sucesiva
La primer prueba compara el valor del elemento que está a la mitad del conjunto
contra el valor buscado, si el valor buscado es menor, entonces la segunda mitad
del conjunto puede ignorarse. En cambio si el valor es mayor se considerará la
segunda mitad y se ignorará la primer mitad.

ORDENAMIENTO POR SELECCIÓN

● También denominado o. o método de burbuja


● Comparar elementos sucesivos e intercambiar los elementos fuera de
secuencia.
● El método termina cuando no hay intercambios que hacer durante una
pasada a todo el conjunto de datos.

Ej power, voy tomando 1 y comparando. Ordeno y hago otra burbuja

Se exige el ordenamiento por burbuja en exámenes


Comparación de tiempos
Como podemos analizar, el algoritmo que se va demorando cada vez mas
tiempo es el de la burbuja, luego de selección y tercero el inserción. Los
algoritmos que los siguen son el Shell y el de ordenación por mezcla, pero el más
óptimo es el “Rápido”

Complejidad
Estudia los recursos que usamos para resolver un problema
utiliza tiempo y espacio
Para estudiar los problemas, los podemos clasificar

Orden
el algoritmo más eficiente es:
es el mas rapido (lo mas comun)
el que ocupa menos memoria
la eficiencia se expresa en función del tamaño del programa

Como se mide

ANALISIS DE ALGORITMOS
tenemos 2 casos
peor caso: la peor situacion que nos puede pasar, ej, que sea el último.calcula su
función de crecimeinto dandole la pero de todas las entradas posibles
caso promedio
promedio de cuanto tardaria el akgoritmo de cada una de las entradas posibles

costo computacional
cual es el mejor
peor caso mas facil de razonar, para analizar el costo de un algoritmo se siguen 3
pasos
1. suponer lo peor de los casos
2. asignar costos a cada linea/operacion del código
3. cer cuántas veces será ejecutada cada línea de código

También podría gustarte