metodos de ordenacion en c++
DESCRIPTION
c++ - PowerPoint PPT PresentationTRANSCRIPT
Métodos
De Ordenación y Búsqueda
Ordenación
Definición:• Es una operación que
consiste en disponer un conjunto de estructuras de datos en algún determinado orden con respecto a uno de los campos de elementos del conjunto
Ejemplos un lista de clientes una lista de piezas
Colección de datos
DefiniciónUna colección de datos
clasificados se pueden almacenar en un archivo, vector o tabla, una lista enlazada o árbol
• Una lista enlazada tiene un conjunto de nodos, los cuales almacenan 2 tipos de información: El dato que contienen y un puntero al siguiente nodo en la lista. El último nodo de la lista tiene como siguiente nodo el valor NULL.
Clasificación de Ordenación
• InternaArregloLista enlazadaárbol
• ExternaArchivoCintasDispositivos electrónicos
Concepto de Árbol• Un árbol es una estructura no lineal en la que cada nodo puede apuntar a uno o varios nodos.
Árbol• Definiremos varios conceptos. En relación con otros nodos:• Nodo hijo: cualquiera de los nodos apuntados por uno de los nodos del árbol. • Nodo padre: nodo que contiene un puntero al nodo actual. • Nodo raíz: nodo que no tiene padre. Este es el nodo que usaremos para referirnos al árbol. • Nodo hoja: nodo que no tiene hijos.
Clasificación de las listas
Las listas pueden estar ordenada en formas ascendente o descendente.
Ejemplos Números: 14-4-32-21-45-5A:4-5-14-21-32-45D:45-32-21-14-5-4Ejemplos Letras: Rojas, Del Valle,Flores,ZacariasA:D:
Métodos de Ordenación Básicos
Los métodos básicos de ordenación más simples son
• Ordenación por Selección• Ordenación por Inserción• Ordenación por Burbuja
Ordenación por Selección• Seleccionar el elemento menor dentro de
nuestro conjunto• Intercambiar dicho elemento con el primer
elemento de nuestro conjunto• X [5]:Indices 0 1 2 3 4
• Indices x[0]>x[1] • X [5]: • Indices x[0]>x[2]
5 4 3 2 1
4 5 3 2 1
Ordenación por Selección
• X[5]:• 0 1 2 3 4
• Indices x[0]>x[3]
• X[5]:• 0 1 2 3 4
• Indices x[0]>x[4]• X[5]:
• Cantidad de comparaciones,intercambio,recorridos.
3 5 4 2 1
2 5 4 3 1
1 5 4 3 2
Pseudocódigo
Para i=1 hasta n-1 para j=i+1 hasta n si x[i] >x[j] entonces temp=x[i] x[i]=x[j] x[j]=temp fin si fin para fin para
Código en Lenguaje CSelección( int n , A[]) { int i,j, tmp; For ( i=0 ; 1<n-1 ; 1++) { For( j=i+1 ; j<n ; j++) If (x[i]>x[j]) { tmp=x[i]; x[i]=x[j]; x[j]=tmp; } } }
Ejercicios
• El arreglo a ordenar es a = ['a','s','o','r','t','i','n','g','e','x','a','m','p','l','e'].
Ordenación por Inserción
• Este método consiste en insertar un elemento en el vector en una parte ya ordenada de este vector y comenzara de nuevo con los elementos restantes. también se conoce como método de la baraja.
• Y[6]:Índice 0 1 2 3 4 5
6 5 3 8 1 7
Ordenamiento Burbuja• Comparar elementos consecutivos en cada paso a lo
largo del arreglo.Cada vez que se realiza una comparación, los elementos se intercambian entre si en caso de no estar en orden.Se le llama de burbuja, porque en la ordenación los elementos mas ligeros suben en la lista.
Se pasa varias veces a través del arreglo en forma secuencial.Cada paso consiste en la comparación de cada elemento con su sucesor, y el intercambio de los dos elementos si no están en el orden correcto.
#include<stdio.h>#include<conio.h> int main(){printf("ingrese el valor de n\n");scanf("%d",n);//ingreso de valores al arreglofor(i=0;i<n-1;i++){ prinft("ingrese valores al arreglo\n"); scanf("%d",&a[i]);}//fin de ingreso de valores al arreglo//inicio del método de la burbuja
for(i=0;i<n-1;i++){ for(j=i+1;j<n;j++) { if(a[i]>a[j]) { aux=a[i]; a[i]=a[j]; a[j]=aux; } }}// fin del ordenamiento