Selección
Consta en buscar el elemento de menor valor del arreglo e intercambiarlo con el elemento que está en la primera posición, repitiendo este algoritmo con el resto de posiciones hasta que todos los elementos estén ordenados.
// Ordena los elementos del vector, de forma ascendente.
void seleccion(vector_t vector, int tope){
for (int i = 0; i < tope; i++){
int minimo = i;
for (int j = i + 1; j < tope; j++){
if (vector[j] < vector[minimo]){
minimo = j;
}
}
elemento_t aux = vector[i];
vector[i] = vector[minimo];
vector[minimo] = aux;
}
}Burbujeo
Este método consiste en ir comparando cada elemento del arreglo con su adyacente, e intercambiarlos si están en el orden incorrecto. Se repite esto hasta que el elemento mayor se encuentre en el extremo, y se repite la pasada hasta que el arreglo esté ordenado.
// Ordena los elementos del vector, de forma ascendente.
void burbujeo(vector_t vector, int tope){
for (int i = 0; i < tope; i++){
for (int j = 0; j < tope - i - 1; j++){
if (vector[j] > vector[j + 1]){
elemento_t aux = vector[j];
vector[j] = vector[j + 1];
vector[j + 1] = aux;
}
}
}
}Inserción
Se parte de un vector con un solo elemento, y se van agregando uno por uno los nuevos elementos al vector, de forma ordenada. Hasta que el nuevo vector contenga todos los elementos, de forma ordenada.
// Ordena los elementos del vector, de forma ascendente.
void insercion(vector_t vector, int tope){
for (int i = 1; i < tope; i++){
int j = i;
elemento_t aux = arreglo[i];
while (j > 0 && aux < arreglo[j - 1]){
arreglo[j] = arreglo[j - 1];
j--;
}
arreglo[j] = aux;
}
}