You are on page 1of 4

THALIA MELANIA return EXIT_SUCCESS; for(int i=0; i<n; i++) {

} { cin>>terminos[i];
BUBBLESORT cout<<terminos[i]<<" \t"; }
} insertionSort (terminos,n);
#include <cstdlib> cout<<endl; cout<<"Terminos ya ordenados son:"<<endl;
#include <iostream> system("PAUSE"); for(int i=0; i<n; i++)
SELECTIONSORT return EXIT_SUCCESS; {
//Ordenacion por burbuja(bubblesort) } cout<<terminos[i]<<" \t";
#include <cstdlib> }
using namespace std; #include <iostream> cout<<endl;
system("PAUSE");
void bubbleSort (int numbers[], int tam) using namespace std; return EXIT_SUCCESS;
{ INSERTIONSORT }
int i, j, temp; //ordenación por selección
for (i = (tam - 1); i >= 0; i--) #include <cstdlib>
{ void selectionSort(int numbers[], int tam) #include <iostream>
for (j = 1; j <= i; j++) {
{ int i, j; using namespace std; QUICKSORT
if (numbers[j-1] > numbers[j]) int min, temp;
{ for (i = 0; i < tam-1; i++) //ordenamiento por insercion
temp = numbers[j-1]; { #include <cstdlib>
numbers[j-1] = numbers[j]; min = i; void insertionSort(int numbers[], int tam) #include <iostream>
numbers[j] = temp; for (j = i+1; j < tam; j++) {
} { int i, j, index; using namespace std;
} if (numbers[j] < for (i=1; i < tam; i++)
} numbers[min]) { //ordenamiento por quicksort
} min = j; index = numbers[i];
} j = i; int particion( int numbers[], int inicio, int tam )
int main(int argc, char *argv[]) temp = numbers[i]; while ((j > 0) && (numbers[j- {
{ numbers[i] = numbers[min]; 1] > index)) int pivot, tmp, tmp1, i;
int n,terminos[n]; numbers[min] = temp; { pivot=numbers[tam];
cout<<"Ingrese el numero de terminos que } numbers[j] = i=inicio-1;
desea ordenar:"; } numbers[j-1]; for(int j=inicio; j<=tam-1; j++)
cin>>n; j = j - 1; {
cout<<"Ingrese los terminos que desea int main(int argc, char *argv[]) } if( numbers[j] <= pivot )
ordenar:"<<endl; { numbers[j] = index; {
for(int i=0; i<n; i++) int n,terminos[n]; } i++;
{ cout<<"Ingrese el numero de terminos que } tmp=numbers[i];
cin>>terminos[i]; desea ordenar:"; numbers[i]=numbers[j];
} cin>>n; int main(int argc, char *argv[]) numbers[j]=tmp;
bubbleSort (terminos,n); cout<<"Ingrese los terminos que desea { }
cout<<"Terminos ya ordenados son:"<<endl; ordenar:"<<endl; int n,terminos[n]; }
for(int i=0; i<n; i++) for(int i=0; i<n; i++) cout<<"Ingrese el numero de terminos que tmp1=numbers[i+1];
{ { desea ordenar:"; numbers[i+1]=numbers[tam];
cout<<terminos[i]<<" \t"; cin>>terminos[i]; cin>>n; numbers[tam]=tmp1;
} } cout<<"Ingrese los terminos que desea return i+1;
cout<<endl; selectionSort (terminos,n); ordenar:"<<endl; }
system("PAUSE"); cout<<"Terminos ya ordenados son:"<<endl; for(int i=0; i<n; i++)
void quicksort(int numbers[], int inicio, int tam)
{ { {
int ind_pivot; i++; #include <cstdlib> int n,terminos[n];
if( inicio < tam ) tmp=numbers[i]; #include <iostream> cout<<"Ingrese el numero de terminos que
{ numbers[i]=numbers[j]; desea ordenar:";
ind_pivot=particion(numbers,inicio,tam); numbers[j]=tmp; using namespace std; cin>>n;
quicksort(numbers,inicio,ind_pivot-1); } cout<<"Ingrese los terminos que desea
quicksort(numbers,ind_pivot+1,tam); } void particion(int numbers[], int left, int right) ordenar:"<<endl;
} tmp=numbers[i+1]; { for(int i=0; i<n; i++)
} numbers[i+1]=numbers[tam]; int pivot, l_hold, r_hold; {
numbers[tam]=tmp; l_hold = left; cin>>terminos[i];
int main(int argc, char *argv[]) return i+1; r_hold = right; }
{ } pivot = numbers[left]; quicksort (terminos, n);
int n,terminos[n]; while (left < right) cout<<"Terminos ya ordenados son:"<<endl;
cout<<"Ingrese el numero de terminos que void quicksort(int numbers[], int inicio, int tam) { for(int i=0; i<n; i++)
desea ordenar:"; { while ((numbers[right] >= {
cin>>n; int ind_pivot; pivot) && (left < right)) cout<<terminos[i]<<" \t";
cout<<"Ingrese los terminos que desea if( inicio < tam ) right--; }
ordenar:"<<endl; { if (left != right) cout<<endl;
for(int i=1; i<=n; i++) ind_pivot=particion(numbers,inicio,tam); { system("PAUSE");
{ quicksort(numbers,inicio,ind_pivot-1); numbers[left] = return EXIT_SUCCESS;
cin>>terminos[i]; quicksort(numbers,ind_pivot+1,tam); numbers[right]; }
} } left++;
quicksort (terminos,1,n); } } BINARIO
cout<<"Terminos ya ordenados son:"<<endl; while ((numbers[left] <=
for(int i=1; i<=n; i++) int main(int argc, char *argv[]) pivot) && (left < right))
{ left++; #include <cstdlib>
{
cout<<terminos[i]<<" \t"; if (left != right) #include <iostream>
int n,terminos[n];
} cout<<"Ingrese el numero de terminos que {
cout<<endl; numbers[right] = using namespace std;
desea ordenar:";
system("PAUSE"); cin>>n; numbers[left];
return EXIT_SUCCESS; right--; int binario( int dato, int primero, int ultimo, int
cout<<"Ingrese los terminos que desea
} } numbers[] )
ordenar:"<<endl;
} {
for(int i=1; i<=n; i++)
numbers[left] = pivot; int i,j,medio;
QUICKSORT_INVERTIDO {
pivot = left; i=primero;
cin>>terminos[i];
left = l_hold; j=ultimo;
}
#include <cstdlib> right = r_hold; if(primero<=ultimo)
quicksort (terminos,1,n);
#include <iostream> if (left < pivot) {
cout<<"Terminos ya ordenados son:"<<endl;
particion(numbers, left, pivot-1); medio =(primero+ultimo)/2;
for(int i=n; i>=1; i--)
using namespace std; if (right > pivot) if(dato == numbers[medio])
{
particion(numbers, pivot+1, right); {
cout<<terminos[i]<<" \t";
int particion( int numbers[], int inicio, int tam ) } return medio;
}
{ }
cout<<endl;
int pivot, tmp, i; void quicksort(int numbers[], int tam) else if(dato<numbers[medio])
system("PAUSE");
pivot=numbers[tam]; { {
return EXIT_SUCCESS;
i=inicio-1; particion( numbers, 0, tam-1 ); return binario(dato,i,medio-1,numbers);
}
for(int j=inicio; j<=tam-1; j++) } }
{ else
if( numbers[j] <= pivot ) QUICKSORT – BUCLES int main(int argc, char *argv[]) {
return binario (dato,medio+1,j,numbers); else cout<<"ingrese los ("<<num<<")numeros a increment = increment/2;
} { ordenar;"<<endl; else if (increment == 1)
return -1; b[i]=a[j]; for(int i=1;i<=num;i++) increment = 0;
} j++; { else
} } cin>>a[i]; increment = 1;
i++; } }
int main(int argc, char *argv[]) } merge_sort(a,1,num); }
{ if(h>m) cout<<endl<<"los numeros ordenados
int num,dat; { son"<<endl; int main(int argc, char *argv[])
cout<<"ingrese el numero de for(k=j;k<=u;k++) for(int i=1;i<=num;i++) {
elementos:"<<endl; { { int n,terminos[n];
cin>>num; b[i]=a[k]; cout<<a[i]<<" "; cout<<"Ingrese el numero de terminos que
cout<<"ingrese el numero que desea i++; } desea ordenar:";
buscar"<<endl; } cout<<endl; cin>>n;
cin>>dat; } system("PAUSE"); cout<<"Ingrese los terminos que desea
cout<<endl; else return EXIT_SUCCESS; ordenar:"<<endl;
int a[num]; { } for(int i=0; i<n; i++)
cout<<"ingrese los ("<<num<<")numeros for(k=h;k<=m;k++) {
ordenados"<<endl; { SHELLSORT cin>>terminos[i];
for(int i=1;i<=num;i++) b[i]=a[k]; }
{ i++; shellSort (terminos, n);
cin>>a[i]; } #include <cstdlib> cout<<"Terminos ya ordenados son:"<<endl;
} } #include <iostream> for(int i=0; i<n; i++)
cout<<endl<<"el numero esta en la for(k=p;k<=u;k++) {
posicion:"<<binario(dat,1,num,a)<<endl; { using namespace std; cout<<terminos[i]<<" \t";
system("PAUSE"); a[k]=b[k]; }
return EXIT_SUCCESS; } void shellSort(int numbers[], int tam) cout<<endl;
} } { system("PAUSE");
int i, j, increment, temp; return EXIT_SUCCESS;
MERGESORT increment = 3;
void merge_sort(int a[],int p,int u) }
{ while (increment > 0)
#include <cstdlib> { HEADSORT
int m;
#include <iostream> if(p<u) for (i=0; i < tam; i++)
{ { #include <cstdlib>
using namespace std; m=(p+u)/2; j = i; #include <iostream>
merge_sort(a,p,m); temp =
void merge(int a[],int p,int m,int u) merge_sort(a,m+1,u); numbers[i]; using namespace std;
{ merge(a,p,m,u); while ((j >=
int h,i,j,b[u],k; } increment) && (numbers[j-increment] > temp)) void siftDown(int numbers[], int root, int bottom)
h=p; } { {
i=p; int done, maxChild, temp;
j=m+1; int main(int argc, char *argv[]) numbers[j] = numbers[j - increment]; done = 0;
while((h<=m)&&(j<=u)) { j=j- while ((root*2 <= bottom) && (!done))
{ int num; increment; {
if(a[h]<=a[j]) cout<<"ingrese el numero de } if (root*2 == bottom)
{ elementos:"<<endl; numbers[j] = maxChild = root * 2;
b[i]=a[h]; cin>>num; temp; else if (numbers[root * 2] >
h++; cout<<endl; } numbers[root * 2 + 1])
} int a[num]; if (increment/2 != 0) maxChild = root * 2;
else cout<<terminos[i]<<" \t";
maxChild = root * 2 + 1; }
if (numbers[root] < cout<<endl;
numbers[maxChild]) system("PAUSE");
{ return EXIT_SUCCESS;
temp = }
numbers[root];
numbers[root] =
numbers[maxChild];

numbers[maxChild] = temp;
root = maxChild;
}
else
done = 1;
}
}

void heapSort(int numbers[], int tam)


{
int i, temp;
for (i = (tam / 2)-1; i >= 0; i--)
siftDown(numbers, i, tam);
for (i = tam-1; i >= 1; i--)
{
temp = numbers[0];
numbers[0] = numbers[i];
numbers[i] = temp;
siftDown(numbers, 0, i-1);
}
}

int main(int argc, char *argv[])


{
int n,terminos[n];
cout<<"Ingrese el numero de terminos que
desea ordenar:";
cin>>n;
cout<<"Ingrese los terminos que desea
ordenar:"<<endl;
for(int i=0; i<n; i++)
{
cin>>terminos[i];
}
heapSort (terminos, n);
cout<<"Terminos ya ordenados son:"<<endl;
for(int i=0; i<n; i++)
{

You might also like