Archivo Ejecutable
En la
informática, es un ejecutable o archivo ejecutable, es un archivo binario cuyo
contenido se interpreta por la computadora como un
programa. Generalmente, contiene instrucciones en código máquina
de un procesador en concreto, pero también puede contener bytecode que
requiera un intérprete para ejecutarlo. Además, suele contener llamadas a
funciones específicas de un sistema operativo "llamada al sistema".
Dependiendo del tipo de que se traten las instrucciones, que también se hacen
relaciones con el ejecutable de portables en este casa que se puede ejecutar en
varias plataformas.
Ordenamiento
Es la
operación de arreglar los registros de una tabla en algún orden secuencial de
acuerdo a un criterio de ordenamiento. El ordenamiento se efectúa con base en
el valor de algún campo de registro. El propósito de un ordenamiento es el de
facilitar las búsqueda de los miembros del conjunto ordenados. El ordenar un
grupo de datos significa mover los datos o su referencia para que queden en una
secuencia tal que represente un orden, el cual puede ser numérico, alfabético o
incluso alfanumérico, ascendente o descendente.
Ordenamiento por selección
Descripción:
.Buscas el elemento más pequeño de la
lista
. Lo intercambias con el elemento
ubicado en la primera posición de la lista.
. Buscas el segundo elemento más pequeño
de la lista.
. Lo intercambias con el elemento que
ocupa la segunda posicion en la lista.
. Repites este proceso hasta que
hayas ordenado toda la lista.
Análisis del algoritmo:
. Requerimientos de memoria: al
igual que el ordenamiento burbuja, este algoritmo solo necesita una
variable adicional para realizar los intercambios.
. Tiempo de ejecución el ciclo
externo se ejecutan veces para una lista de elementos. Cada búsqueda requiere
comparar todos los elementos no clasificados.
Ventajas:
. Fácil implementación.
. No requiere memoria adicional.
. Rendimiento constante: poca diferencia
entre el peor y el mejor caso.
Desventaja:
. Lento.
. Realiza numerosas comparaciones.
Ordenamiento de inserción
El algoritmo
de ordenación por el método de inserción directa
es un algoritmo relativamente sencillo y se comporta razonablemente bien en la
gran cantidad de situaciones. Completa la tripleta de los algoritmos
de ordenación más básicos y de orden de complejidad cuadrático,
junto con selectionSort y bubbleSort.
Se basa en
intentar construir una lista ordenada en el interior del array a ordenar.
De estos tres algoritmos es el que mejor resultado de e
efectos prácticos Realiza una cantidad de comparaciones bastante
equilibrada con respecto a los intercambio, y tiene un par
de características que lo hacen aventajar a los otros dos en la mayor
parte de las situaciones. Este algoritmo se basa en hacer comparaciones, así que
para que realice su trabajo de ordenación son imprescindibles dos
cosas: un array o estructura similar de elementos comprables y uno criterio
claro de comparación, tal que dados dos elementos nos diga
se están en orden o no.
En cada iteración del ciclo externo los
elementos 0 a i forman una lista ordenada.
Análisis del algoritmo:
. Estabilidad: este algoritmo nunca
intercambia registro con claves iguales. por los tanto es estable.
. Requerimientos de memoria: una variable
adicional para realizar los intercambios.
. Tiempo de ejecución para una
lista de n elemento el ciclo se ejecuta n-1 veces. El ciclo interno se ejecuta
como máximo una vez en la primera iteracion, 2 veces en la segunda, 3
veces en la tercera, etc.
Ventajas:
. Fácil implementación.
. Requerimientos mínimos de
memoria.
Desventajas:
. Lento.
. Realiza numerosas comparaciones.
. Este también es un algoritmo
lento, peor puede ser de utilidad para listas que están ordenadas o
semi-ordenadas, porque en ese caso realiza muy pocos desplazamientos.
Búsqueda
La búsqueda es
una operación que tiene por objeto la localización de un elemento dentro de la
estructura de datos. A menudo un programador estará trabajando con grandes
cantidades de datos almacenados en arreglos y pudiera resultar necesario
determinar si un arreglo contiene un valor que coincide con algún valor clave o
buscado.
Siendo el array de una dimensión o lista una estructura de acceso directo y a su vez de acceso secuencial, encontramos dos técnicas que utilizan estos dos métodos de acceso, para encontrar elementos dentro de un array: búsqueda lineal y búsqueda binaria.
Búsqueda Secuencial:
La búsqueda secuencial es la técnica más simple para buscar un elemento en un arreglo. Consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado (clave). Se empieza con la primera casilla del arreglo y se observa una casilla tras otra hasta que se encuentra el elemento buscado o se han visto todas las casillas. El resultado de la búsqueda es un solo valor, y será la posición del elemento buscado o cero. Dado que el arreglo no está en ningún orden en particular, existe la misma probabilidad de que el valor se encuentra ya sea en el primer elemento, como en el último. Por lo tanto, en promedio, el programa tendrá que comparar el valor buscado con la mitad de los elementos del arreglo.
El método de búsqueda lineal funciona bien con arreglos pequeños o para arreglos no ordenados. Si el arreglo está ordenado, se puede utilizar la técnica de alta velocidad de búsqueda binaria, donde se reduce sucesivamente la operación eliminando repetidas veces la mitad de la lista restante.
Búsqueda Binaria:
La búsqueda binaria es el método más eficiente para encontrar elementos en un arreglo ordenado. El proceso comienza comparando el elemento central del arreglo con el valor buscado. Si ambos coinciden finaliza la búsqueda. Si no ocurre así, el elemento buscado será mayor o menor en sentido estricto que el central del arreglo. Si el elemento buscado es mayor se procede a hacer búsqueda binaria en el subarray superior, si el elemento buscado es menor que el contenido de la casilla central, se debe cambiar el segmento a considerar al segmento que está a la izquierda de tal sitio central.
Burbuja
La Ordenación de burbuja es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas "burbujas". También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación.
Siendo el array de una dimensión o lista una estructura de acceso directo y a su vez de acceso secuencial, encontramos dos técnicas que utilizan estos dos métodos de acceso, para encontrar elementos dentro de un array: búsqueda lineal y búsqueda binaria.
Búsqueda Secuencial:
La búsqueda secuencial es la técnica más simple para buscar un elemento en un arreglo. Consiste en recorrer el arreglo elemento a elemento e ir comparando con el valor buscado (clave). Se empieza con la primera casilla del arreglo y se observa una casilla tras otra hasta que se encuentra el elemento buscado o se han visto todas las casillas. El resultado de la búsqueda es un solo valor, y será la posición del elemento buscado o cero. Dado que el arreglo no está en ningún orden en particular, existe la misma probabilidad de que el valor se encuentra ya sea en el primer elemento, como en el último. Por lo tanto, en promedio, el programa tendrá que comparar el valor buscado con la mitad de los elementos del arreglo.
El método de búsqueda lineal funciona bien con arreglos pequeños o para arreglos no ordenados. Si el arreglo está ordenado, se puede utilizar la técnica de alta velocidad de búsqueda binaria, donde se reduce sucesivamente la operación eliminando repetidas veces la mitad de la lista restante.
Búsqueda Binaria:
La búsqueda binaria es el método más eficiente para encontrar elementos en un arreglo ordenado. El proceso comienza comparando el elemento central del arreglo con el valor buscado. Si ambos coinciden finaliza la búsqueda. Si no ocurre así, el elemento buscado será mayor o menor en sentido estricto que el central del arreglo. Si el elemento buscado es mayor se procede a hacer búsqueda binaria en el subarray superior, si el elemento buscado es menor que el contenido de la casilla central, se debe cambiar el segmento a considerar al segmento que está a la izquierda de tal sitio central.
Burbuja
La Ordenación de burbuja es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas "burbujas". También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación.
Ejercicios
resuelto en clases
Ordenamiento
#include <iostream.h>
main(){
char a[]="r,e,p,u,b,l,i,c,a";
cin>>"a";
main(){
char a[]="r,e,p,u,b,l,i,c,a";
cin>>"a";
cout<<"a";
}
}
Búsqueda
#include <iostream.h>
void intercambio(int &x, int &y){
int aux= x;
x=y;
y=aux;}
void ordintercambio(int a[],int n){
int i,j;
for(i=0; i<n-1;i++)
for(j=0; j<n;j++)
if(a[i]>a[j])
intercambio(a[i],a[j]);}
void imprimir (int a[], int n){
for(int i=0;i<n;i++)
cout<<a[i]<<" ";}
void main (void){
int lista [20]={30,2,5,8,4,7,1,3,6,9,2,4,56,32,5,5,5,2,7,22};
int i;
cout<<"lista original\n";
imprimir(lista,20);
ordintercambio(lista,20);
cout<<endl<<"lista ordenado";
imprimir(lista,20);
}
Burbuja
void intercambio(int &x, int &y){
int aux= x;
x=y;
y=aux;}
void ordintercambio(int a[],int n){
int i,j;
for(i=0; i<n-1;i++)
for(j=0; j<n;j++)
if(a[i]>a[j])
intercambio(a[i],a[j]);}
void imprimir (int a[], int n){
for(int i=0;i<n;i++)
cout<<a[i]<<" ";}
void main (void){
int lista [20]={30,2,5,8,4,7,1,3,6,9,2,4,56,32,5,5,5,2,7,22};
int i;
cout<<"lista original\n";
imprimir(lista,20);
ordintercambio(lista,20);
cout<<endl<<"lista ordenado";
imprimir(lista,20);
}
Burbuja
#include <iostream.h>
void ordburbuja(int a[], int n)
{int aux, j, pasado;
int interreptor=TRUE;
for(pasada=0 pasado<n-1&&interruptor==TRUE; pasado++)
{interruptor=false;
for(j=0; j<n-pasodo-1; j++)
if(a[j]>a[j+1])
{interruptor=TRUE;
aux=a[j];
a[j]=a[j+1]
a[j+1]=aux;
}
}
}
void ordburbuja(int a[], int n)
{int aux, j, pasado;
int interreptor=TRUE;
for(pasada=0 pasado<n-1&&interruptor==TRUE; pasado++)
{interruptor=false;
for(j=0; j<n-pasodo-1; j++)
if(a[j]>a[j+1])
{interruptor=TRUE;
aux=a[j];
a[j]=a[j+1]
a[j+1]=aux;
}
}
}
No hay comentarios:
Publicar un comentario