Objetivo: Facilitar la búsqueda de los elementos del conjunto ordenado Métodos de ordenación Definición: Reorganizar un conjunto dado de objetos en una secuencia especificada Objetivo: Facilitar la búsqueda de los elementos del conjunto ordenado Con la finalidad de facilitar este diseño la CO se orgtaniza en 3 entidades básicas representadas en 3 taxonomías separadas: conceptos, atributos describiendo los conceptos y operaciones. Los atributos se clasifican según su comportamiento sintáctic-semántico. Las tareas de comunicación consisten en la expresión de operaciones
Métodos de ordenación Los métodos óptimos para ordenar un número pequeño de elementos: Ordenación por selección Ordenación por insercción directa Ordenación mediante el método de la burbuja Utilizan un sola tabla Para ordenar valores grandes existen mejoras de estos tres métodos Con la finalidad de facilitar este diseño la CO se orgtaniza en 3 entidades básicas representadas en 3 taxonomías separadas: conceptos, atributos describiendo los conceptos y operaciones. Los atributos se clasifican según su comportamiento sintáctic-semántico. Las tareas de comunicación consisten en la expresión de operaciones
Ordenación por selección Ordena una tabla de n elementos en n-1 iteracciones Inicialmente no hay posiciones ordenadas En cada iteracción se ordena una nueva posición de la tabla En la iteración i se habrán ordenado las i primeras posiciones de la tabla Con la finalidad de facilitar este diseño la CO se orgtaniza en 3 entidades básicas representadas en 3 taxonomías separadas: conceptos, atributos describiendo los conceptos y operaciones. Los atributos se clasifican según su comportamiento sintáctic-semántico. Las tareas de comunicación consisten en la expresión de operaciones
Ordenación por selección Operaciones básicas: Selecciona el elemento con clave mínima Intercambio con el primer elemento, a1 Se repiten estas operaciones con los elementos n-1, n-2, ..., restantes hasta que quede un único elemento, que queda ya ordenado Con la finalidad de facilitar este diseño la CO se orgtaniza en 3 entidades básicas representadas en 3 taxonomías separadas: conceptos, atributos describiendo los conceptos y operaciones. Los atributos se clasifican según su comportamiento sintáctic-semántico. Las tareas de comunicación consisten en la expresión de operaciones
Ordenación por selección Posición inicial 95 3 1 83 75 |----------------| Primera iteración 1 3 95 83 75 Se ordena la primera posición Se busca el mínimo entre todos los elementos Se intercambian el primer valor y el valor mínimo Con la finalidad de facilitar este diseño la CO se orgtaniza en 3 entidades básicas representadas en 3 taxonomías separadas: conceptos, atributos describiendo los conceptos y operaciones. Los atributos se clasifican según su comportamiento sintáctic-semántico. Las tareas de comunicación consisten en la expresión de operaciones
Ordenación por selección Primera iteración 1 3 95 83 75 Segunda iteración 1 3 95 83 75 Se ordena la segunda posición Se busca el mínimo entre los elementos que están entre la segunda y la última posición No se realiza ningún cambio, porque el valor mínimo es el que está en la posición a ordenar Con la finalidad de facilitar este diseño la CO se orgtaniza en 3 entidades básicas representadas en 3 taxonomías separadas: conceptos, atributos describiendo los conceptos y operaciones. Los atributos se clasifican según su comportamiento sintáctic-semántico. Las tareas de comunicación consisten en la expresión de operaciones
Ordenación por selección Segunda iteración 1 3 95 83 75 |------------------| Tercera iteración 1 3 75 83 95 Se ordena la tercera posición Se busca el mínimo entre los elementos que están entre la tercera y la última posición Se intercambia el valor de la tercera posición y el valor mínimo Con la finalidad de facilitar este diseño la CO se orgtaniza en 3 entidades básicas representadas en 3 taxonomías separadas: conceptos, atributos describiendo los conceptos y operaciones. Los atributos se clasifican según su comportamiento sintáctic-semántico. Las tareas de comunicación consisten en la expresión de operaciones
Ordenación por selección Tercera iteración 1 3 95 83 75 Cuarta iteración 1 3 75 83 95 Se ordena la cuarta posición Se busca el mínimo entre los elementos que están entre la cuarta y la última posición No se realiza ningún cambio, porque el valor mínimo es el que está en la posición a ordenar La última posición queda ordenada Con la finalidad de facilitar este diseño la CO se orgtaniza en 3 entidades básicas representadas en 3 taxonomías separadas: conceptos, atributos describiendo los conceptos y operaciones. Los atributos se clasifican según su comportamiento sintáctic-semántico. Las tareas de comunicación consisten en la expresión de operaciones
Ordenación por selección Posición inicial 95 3 1 83 75 |----------------| Primera iteración 1 3 95 83 75 Segunda iteración 1 3 95 83 75 |------------------| Tercera iteración 1 3 75 83 95 Cuarta iteración 1 3 75 83 95 Con la finalidad de facilitar este diseño la CO se orgtaniza en 3 entidades básicas representadas en 3 taxonomías separadas: conceptos, atributos describiendo los conceptos y operaciones. Los atributos se clasifican según su comportamiento sintáctic-semántico. Las tareas de comunicación consisten en la expresión de operaciones
Ordenación por selección ALGORITMO GENERAL for( j=0; j<n-1; j++){ “ asignar a jmin el índice correspondiente al elemento con clave mínima de aj .. an ” “ intercambiar aj y ajmin “ } Con la finalidad de facilitar este diseño la CO se orgtaniza en 3 entidades básicas representadas en 3 taxonomías separadas: conceptos, atributos describiendo los conceptos y operaciones. Los atributos se clasifican según su comportamiento sintáctic-semántico. Las tareas de comunicación consisten en la expresión de operaciones
for( j=0;j<n-1;j++){ jmin = j; for (k =j+1;j<n;j++){ if (v[k] < v[jmin]){ jmin = k ; } if (jmin > j){ aux = v[jmin]; v[jmin] = v[j]; v[j] = aux; Siguiendo esta organización se ha diseñado GISE: un sistema que genera interfaces para cada aplicación. Se ha desarrollado un prototipo del sistema que se ha aplicado a un sistema experto en leyes y a un sistema de consulta de horarios de trenes.
#include <iostream> #define N 25 void LlegirVector(int v[N], int &n); void OrdenaVector (int v[N], int n); int Minim (int v[N], int j, int n); void EscriureVector (int v[N], int n); void Intercanvia(int v[N], int i, int j); Int main(void){ int v[N]; int n; LlegirVector(v,n); OrdenaVector (v,n); EscriureVector (v,n); system(“pause”); } Siguiendo esta organización se ha diseñado GISE: un sistema que genera interfaces para cada aplicación. Se ha desarrollado un prototipo del sistema que se ha aplicado a un sistema experto en leyes y a un sistema de consulta de horarios de trenes.
void OrdenaVector (int v[N], int n){ int i,imin; for( i=0;i<n-1;i++){ imin = Minim(v,i,n);} if(imin!= i) Intercanvia (v,i,imin); } Siguiendo esta organización se ha diseñado GISE: un sistema que genera interfaces para cada aplicación. Se ha desarrollado un prototipo del sistema que se ha aplicado a un sistema experto en leyes y a un sistema de consulta de horarios de trenes.
int Minim (int v[N], int i, int n){ int j, min; min = i; for( j=i+1;j<n;j++){ if (v[j] < v[min]){ min = j;} } return min; void Intercanvia(int v[N], int i, int j){ int aux; aux = v[j]; v[j]= v[i]; v[i] = aux; Siguiendo esta organización se ha diseñado GISE: un sistema que genera interfaces para cada aplicación. Se ha desarrollado un prototipo del sistema que se ha aplicado a un sistema experto en leyes y a un sistema de consulta de horarios de trenes.
Void LlegirEstudiant(estudiant &e){ const int N= 25; typedef struct { string cognom,nom; int numat;} estudiant typedef estudiant vector[N]; void LlegirVector(vector v, int &n); Void LlegirEstudiant(estudiant &e){ Void EscriureEstudiant(estudiant e){ void OrdenaVector (vector v, int n); int Minim (vector v, int j, int n); void EscriureVector (v,n); void Intercanvia(vector v, int i, int j); Int main(void){ vector v; int n; LlegirVector(v,n); OrdenaVector (v,n); EscriureVector (v,n); system(“pause”); }
void LlegirVector(vector v, int &n){ n= 0; LlegirEstudiant(v[n]); while(v[n].nom != “fi” && n < N){ n++; LlegirEstudiant(v[n]); } }// fi acció Void LlegirEstudiant(estudiant &e){ cout <<“Entra informaciód’estudiant”; cin>>e.nom>>e.numat;
void EscriureVector(vector v, int n){ int i; for (i = 0; i< n; i++){ EscriureEstudiant(v[n]); } }// fi acció Void EscriureEstudiant(estudiant e){ cout <<“Nom i matricula d’estudiant”; cout <<e.nom << “ “ << e.numat;