Código de C/Visual C - Método de ordenamiento en Quicksort

Imágen de perfil

Método de ordenamiento en Quicksortgráfica de visualizaciones


C/Visual C

Publicado el 8 de Enero del 2015 por Rafael
6.616 visualizaciones desde el 8 de Enero del 2015
Se utiliza para demostrar el método de ordenamiento por quicksort mediante la generación de un arreglo con valores de forma aleatoria.

Requerimientos

Dev-C++

V1.0

Publicado el 8 de Enero del 2015gráfica de visualizaciones de la versión: V1.0
6.617 visualizaciones desde el 8 de Enero del 2015
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
//Estudiante Ing. Informatica Rafael V. Barrientos Holder.
//email vladimirbh@correodecuba.cu
//Metodo de ordenamiento quicksort C++
 
#include <iostream>
#include <cstdio>
#include <cstdlib>
 
 
using namespace std;
 
 
// Función para dividir el arreglo obtenido aleatoriamente  y hacer los intercambios
 
int dividir(int *array, int inicio, int final) {
    int izquierda;
    int derecha;
    int pivote;
    int temp;
 
    pivote = array[inicio];
    izquierda = inicio;
    derecha = final;
 
    // Mientras no se cruzen los índices
    while (izquierda < derecha) {
        while (array[derecha] > pivote) {
            derecha--;
        }
 
        while ((izquierda < derecha) && (array[izquierda] <= pivote)) {
            izquierda++;
        }
 
        // Si todavía no se cruzan los indices seguimos intercambiando
        if (izquierda < derecha) {
            temp = array[izquierda];
            array[izquierda] = array[derecha];
            array[derecha] = temp;
        }
    }
 
    // Cuando los indices se han cruzado, ponemos el pivote en el lugar que le corresponde
    temp = array[derecha];
    array[derecha] = array[inicio];
    array[inicio] = temp;
 
    // Return para aplicar la nueva ubicacion del pivote
    return derecha;
}
 
// Función recursiva para hacer el ordenamiento
void quicksort(int *array, int inicio, int final)
{
    int pivote;
 
    if (inicio < final) {
        pivote = dividir(array, inicio, final);
 
        // Ordeno la lista de los menores
        quicksort(array, inicio, pivote - 1);
 
        // Ordeno la lista de los mayores
        quicksort(array, pivote + 1, final);
    }
}
 
 
int main()
{
    int const MAX = 200; // el valor se puede modificar, con menor numero se repetirán con mas 
                                         //  frecuencia .
    int arraySize;
 
 
    cout << "Ingresa tamano: " << endl;
    cin >> arraySize;
 
    int a[200]; // el valor se puede modificar, es la cantidad de números a generar.
 
    // Para generar enteros aleatorios usamos rand()
    for (int i = 0; i < arraySize; i++) {
        a[i] = rand() % MAX;
    }
 
    cout << "Array antes de ordenarse: " << endl;
    for (int i = 0; i < arraySize; i++) {
        cout << a[i] << " ";
    }
 
    cout << endl << endl;
 
    quicksort(a, 0, arraySize - 1);
 
 
    cout << "Array ordenado " << endl;
    for (int i = 0; i < arraySize; i++ ){
        cout << a[i] << "-";
    }
 
    cout << endl << endl;
 
    system("Pause"); //Para cuando se ejecute la consola no cierre.
 
    return 0;
}



Comentarios sobre la versión: V1.0 (0)


No hay comentarios
 

Comentar la versión: V1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s2996