Ordenación doble de un array por el método de la burbuja

Sergio Bautista

/* Este programa ordena de mayor a menor y de menor a mayor un array, además de dar la suma de sus elementos. */

#include<iostream>
#include<stdlib.h>
#include<stdio.h>
using namespace std;

#define DIM 40
void leerarray(int v[],int n);
void sumaarray (int v[], int n, int suma);
void burbuja(int v[],int n);
void burbuja_inversa (int v[], int n);

int main()
{
 int n, v[DIM],contador, suma;
 do{
 cout<< "Define la dimension que quieras utilizar: ";
 cin>> n;
 }while(n<=0||n>DIM);
 leerarray(v,n);
 sumaarray(v,n,suma);
 cout<< "El array ordenado de menor a mayor es: ";
 burbuja(v,n);
 cout<<endl;
 cout<<"El array ordenado de mayor a menor es: ";
 burbuja_inversa (v,n);
}

void leerarray(int v[],int n)
{
 cout<< "Introduce tu array ";
 for (int i=0; i<n; i++)
 cin>>v[i];
}

void sumaarray (int v[], int n, int suma)
{
 cout<<"La suma de los elementos de tu array es la siguiente :";
 suma=0;
 for (int i=0; i<n; i++){
 suma+=v[i];}
 cout<<suma<<endl;
}

void burbuja(int v[], int n)
{
 int i,j,t;
 for (i=1;i<n;i++)
 for (j=n-1; j>=i;j--)
 {
 if (v[j-1]>v[j])
 {
 t=v[j-1];
 v[j-1]= v[j];
 v[j]=t;
 }
 }
for (i=0; i<n; i++)
cout<< v[i]<<" ";
}

void burbuja_inversa (int v[], int n)
{
 int i,j,t;
 for (i=1;i<n;i++)
 for (j=n-1; j>=i;j--)
 {
 if (v[j-1]<v[j])
 {
 t=v[j-1];
 v[j-1]= v[j];
 v[j]=t;
 }
 }
for (i=0; i<n; i++)
cout<< v[i]<<" ";
}
Anuncios
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s