esa mamada no se parece, esta mal el pdo
main
// Tecnologico Superior De Jalisco
// Materia: Estructura de Datos
// Tema: Ordenamiento
// Autor: Christopher Jue Mora Sanchez
// Fecha: 5 de mayo 2024
#include <iostream>
#include <ctime>
#include "order.hpp"
using namespace std;
int main() {
int n;
char c;
srand(time(NULL));
cout << "Ingrese el tamaño del arreglo: ";
cin >> n;
int array[n];
cout << "Arreglo original:" << endl;
for (int i = 0; i < n; i++) {
array[i] = (rand() % 10)*n;
cout << array[i] << endl;
}
cout << "Elige el metodo de ordenamiento deseas para el arreglo (Q: Quicksort, H: Heapsort, M: Mergesort): ";
cin >> c;
Class obj;
switch (c) {
case 'Q':
obj.quickSort(array, 0, n - 1);
cout << "Arreglo Ordenado: ";
for (int i = 0; i < n; i++) {
cout << array[i] << " ";
}
break;
case 'H':
obj.heapSort(array, n);
cout << "Arreglo Ordenado: ";
for (int i = 0; i < n; i++) {
cout << array[i] << " ";
}
break;
case 'M':
obj.mergeSort(array, n, array, n);
cout << "Arreglo Ordenado: "or;
for (int i = 0; i < n; i++) {
cout << array[i] << " ";
}
break;
default:
cout << "Opción de ordenamiento inválida." << endl;
}
return 0;
}
order.cpp
#include "order.hpp"
#include <algorithm>
#include <iostream>
Class::Class()
{
};
Class::~Class(){
};
void Class::quickSort(int a[], int l, int r){
int p = a[(l + r)/2];
int i = l;
int j = r;
do {
while(a[i] < p) i++;
while(a[j] > p) j--;
if(i <= j){
std::swap(a[i], a[j]);
i++;
j--;
}
} while(i <= j);
if(l < j) quickSort(a, l, j);
if(i < r) quickSort(a, i, r);
}
int* Class::mergeSort(const int a[], int n, int *b, int m){
int *c = new int[n + m];
int i = 0, j = 0, k = 0;
while(i < n && j < m){
c[k] = a[i] < b[j] ? a[i++] : b[j++];
k++;
}
while (i < n){
c[k] = a[i];
i++;
k++;
}
while(j < m){
c[k] = b[j];
j++;
k++;
}
return c;
}
void Class::heapSort(int a[], int n){
int k;
if(n > 1) {
k = (n / 2);
int l = k, r = n - k;
heapSort(a, l);
heapSort(a + l, r);
int* lamda = mergeSort(a, l, a + l, r);
for(int i = 0; i < n; i++) a[i] = lamda[i];
}
}
order.hpp
#ifndef order_hpp
#define order_hpp
#include <iostream>
#include <cstdlib>
#include <algorithm>
using namespace std;
class Class{
public:
int x;
public:
Class();
~Class();
void quickSort(int a[], int l, int r);
int* mergeSort(const int a[], int n, int *b, int m);
void heapSort(int a[], int n);
};
#endif /* ordenamiento_hpp */
Top comments (0)