Está en la página 1de 12

República Bolivariana de Venezuela

Ministerio del Poder Popular para la Defensa


Universidad Nacional Experimental Politécnica de las Fuerzas
Armadas
UNEFA-NUCLEO LARA

ALUMNA:
PROFESORA:
ASIGANTUTRA:

BARQUISIMETO, 17 de Abril del 2023


METODO QUICKSORT
Quicksort es un eficiente algoritmo de ordenación en el lugar, que
suele funcionar de dos a tres veces más rápido que ordenar por
fusión y heapsort cuando se implementa bien. Quicksort es una
ordenación por comparación, lo que significa que puede ordenar
elementos de cualquier tipo para los que menos que se define la
relación. En implementaciones eficientes, por lo general no es un tipo
estable.
Quicksort, en promedio, hace O(n.log(n)) comparaciones para
ordenar n elementos. En el peor de los casos,
hace O(n2) comparaciones, aunque este comportamiento es muy raro.

¿Cómo funciona Quicksort?

Quicksort es un Divide y Vencerás algoritmo. Como todos los


algoritmos de divide y vencerás, primero divide una matriz grande en
dos subarrays más pequeños y luego ordena recursivamentemente los
subarrays. Básicamente, tres pasos están involucrados en todo el
proceso:

 Selección de pivote: Elija un elemento, llamado pivote, de la


array (generalmente el elemento más a la izquierda o más a la
derecha de la partición).
 Fraccionamiento: Reordene la array de manera que todos los
elementos con valores menores que el pivote estén antes del
pivote. Por el contrario, todos los elementos con valores
mayores que el pivote vienen después de este. Los valores
iguales pueden ir en cualquier dirección. Después de esta
partición, el pivote está en su posición final.
 Repetirse: Aplique recursivamentemente los pasos anteriores al
subarray de elementos con valores más pequeños que el pivote
y por separado al subarray de elementos con valores mayores
que el pivote.
El caso base de la recursividad son arrays de tamaño 1, que nunca
necesitan ser ordenados. El siguiente diagrama muestra cómo
elegimos el elemento más a la izquierda como pivote en cada paso
del algoritmo Quicksort, dividimos la matriz en el pivote y recurrimos
en dos subarrays que obtenemos después del proceso de partición:
METODO DE LA BURBUJA

Este método consiste en acomodar el verter moviendo el mayor hasta


la última casilla, comenzando desde la casilla cero del vector hasta
haber acomodado el número más grande en la última posición, una
vez acomodado el más grande, prosigue a encontrar y acomodar el
siguiente más grande comparando de nuevo los números desde el
inicio del vector y así sigue hasta ordenar todos los elementos de
todo el arreglo.
Este algoritmo es muy diferente, ya que al ir comparando las casillas
para buscar el siguiente mas grande, éste vuelve a comparar las ya
ordenadas. A pesar de ser el algoritmo de ordenamiento mas
deficiente y el más usado.
METODO BUSQUEDA BINARIA

if (A[medio]< num);
{
primero=medio+1;
} else if (A[medio]==
num)
{
cout<<" Se encontro la
posición ";
cout<<medio+1;
break;
}
else {
ultimo = medio - 1;
}
medio =
(primero+ultimo)/2;
}
if (primero>ultimo)
{
cout<<num<<" no se
encontro";
}
return 0;
}
if (A[medio]< num);
{
primero=medio+1;
} else if (A[medio]==
num)
{
cout<<" Se encontro la
posición ";
cout<<medio+1;
break;
}
else {
ultimo = medio - 1;
}
medio =
(primero+ultimo)/2;
}
if (primero>ultimo)
{
cout<<num<<" no se
encontro";
}
return 0;
}
if (A[medio]< num);
{
primero=medio+1;
} else if (A[medio]==
num)
{
cout<<" Se encontro la
posición ";
cout<<medio+1;
break;
}
else {
ultimo = medio - 1;
}
medio =
(primero+ultimo)/2;
}
if (primero>ultimo)
{
cout<<num<<" no se
encontro";
}
return 0;
}
BÚSQUEDA BINARIA

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


operaciones más importantes en el procesamiento de información, y
permite la recuperación de datos. El caso de la Búsqueda Binaria, que
es uno de las tantas búsquedas que existe, pero la más usada, está
hecho para diferentes campos en el mundo laboral, como por ejemplo
una secretaria podría perder tan sólo uno o dos minutos para
encontrar el archivo de uno de los clientes de la compañía para la
cual trabaja, esto, asumiendo que los archivos estén perfectamente
ordenados y catalogados.

ALGORITMO

La búsqueda binaria funciona en arreglos ordenados. Consiste en


eliminar, tras cada comparación, la mitad de los elementos del
arreglo en los que se efectúa la búsqueda, comienza por comparar el
elemento del medio del arreglo con el valor buscado. Si el valor
buscado es igual al elemento del medio, su posición en el arreglo es
retornada. Si el valor buscado es menor o mayor que el elemento del
medio, la búsqueda continuará en la primera o segunda mitad,
respectivamente, dejando la otra mitad fuera de consideración; y si
son iguales, se ha encontrado dicho valor buscado y se devuelve la
posición y sale del bucle; pero si no es así seguirá buscando dicho
valor dentro del bucle y hará las comparaciones necesarias hasta
encontrar el valor buscado.

Código implementado en C++:

using namespace std;

int main()

{ int n, i, A[30], num, primero, ultimo, medio;

cout<<"Ingrese un arreglo ordenado: ";

cout<<"Cuantos elementos te gustaria ingresar?: ";

cin>>n;

for (i=0; i>A[i];

cout<<"Ingrese el numero que desea buscar: ";

cin>>num;

} Primero=0;

Ultimo=n-1;

Medio=(primero+ultimo)/2;

while (primero<=ultimo);

if (A[medio]< num);

{
primero=medio+1;

else if (A[medio]== num)

cout<<" Se encontro la posición ";

cout<<medio+1;

break;

else

ultimo = medio - 1;

medio = (primero+ultimo)/2;

if (primero>ultimo)

{ cout<<num<<" no se encontro";

return 0;

Como podemos ver en el código dentro del Main se inicializa las


variables que vamos a utilizar:

 int n, i, A [30], num, primero, ultimo, medio;

Luego también hacemos uso de una estructura repetitiva FOR, para


ayudar con la estética del código, donde nos pide ingresar por
consola los numero ordenados para el array.
En nuestro for inicializamos nuestra variable iterativa i en 0, esta se
incrementará en 1 por cada iteración hasta que sea igual a número n,
que es la cantidad de números que ingresamos.

Luego hacemos uso de una condicional y ciclo while que realizará la


búsqueda binaria, con el algoritmo antes explicado, importante es que
el array debe estar ordenado ascendentemente.

El algoritmo funciona de la siguiente manera

1. Se determinan un índice primero=0 y un índice último=n-1,


respectivamente.

2. Se determina un índice central, medio = (primero + último) /2

3. Evaluamos si A[medio] es igual a la clave de búsqueda, si es igual


ya encontramos la clave y devolvemos medio.

4. Si son distintos, evaluamos si A[medio] es mayor o menor que la


clave, como el arreglo está ordenado al hacer esto ya podemos
descartar una mitad del arreglo asegurándonos que en esa mitad no
está la clave que buscamos.

En el momento de encontrar el dato, el programa sale del ciclo. Y de


acuerdo al código se mostrará un mensaje: “SE ENCONTRÓ EL
ELEMENTO EN LA POSICIÓN” y cuando sale del ciclo while habrá otro
mensaje: “NO SE ENCONTRÓ”, el cual habla que el elemento no existe
en el arreglo.

Para lograr entenderlo mejor, lo explicaremos con un ejemplo:

Por ejemplo, para buscar el elemento 3 en el array {1,2,3,4,5,6,7,8,9}


se realizarán los siguientes pasos:

 Se toma el elemento central y se divide el array en dos:


{1,2,3,4}-5-{6,7,8,9}
 Como el elemento buscado (3) es menor que el central (5), debe
estar en el primer subarray:
{1,2,3,4}
 Se vuelve a dividir el array en dos:
{1}-2-{3,4}
 Como el elemento buscado es mayor que el central, debe estar
en el segundo subarray:
{3,4}
 Se vuelve a dividir en dos:
{}-3-{4}
 Como el elemento buscado coincide con el central, lo hemos
encontrado

También podría gustarte