Métodos de ordenamiento
Hemos revisado algunos métodos de ordenamiento como son los algoritmos que se listan, para ver una animación de ellos siga los enlaces para cada método:
Verificamos que estos programas están escritos en C#, a partir de ellos compartamos con nuestros compañeros:
- El algoritmo para cada método
- Su implementación en C++
- Su implementación en java
- Y la posibilidad de resolver las dudas de los participantes
Método de Ordenamiento Shell Sort (c++) :
ResponderBorrar#include
#include
#include
using namespace std;
int main(int argc, char *argv[]) {
srand(time(NULL));
int x[10];
int i;
int n=10;
int salto;
int bandera;
srand(time(NULL));
for(i=0;i0;salto=salto/2)
do{
bandera=0;
for(i=0;ix[i+salto]){
temporal=x[i];
x[i]= x[i+salto];
x[i+salto]=temporal;
bandera=1;
}
}while(bandera);
cout<<endl;
cout<<"DESPUES DEL ORDENAMIENTO :"<<endl<<endl;
for(i=0;i<n;i++)
cout<<x[i]<<'\t';
}
MÉTODO DE ORDENAMIENTO POR SELECCIÓN
ResponderBorrar.............. Pseudocódigo (pseint )...............
Proceso sin_titulo
Dimension vector[100]
Escribir "Ingrese el numero e elementos: "
Leer n
Para i<-1 Hasta n Hacer
Escribir "Ingrese el valor ",i,": "
Leer vector[i]
Fin Para
Para i<-1 Hasta n Hacer
Escribir Sin Saltar vector[i]," "
Fin Para
Para j<-1 Hasta n-1 Hacer
Para k<-j+1 Hasta n Hacer
Si(vector[k] < vector[j]) Entonces
temp<-vector[k]
vector[k]<-vector[j]
vector[j]<-temp
Sino
Fin Si
Fin Para
Fin Para
Escribir " "
Escribir " "
Escribir "Numeros ordenados: "
Escribir " "
Para i<-1 Hasta n Hacer
Escribir sin saltar vector[i]," "
Fin Para
FinProceso
//Quick Sort
ResponderBorrar//Codificado por sAfOrAs
#include
#define largo 100
#include"leearreglo.h"
using namespace std;
void quicksort(int A[],int izq, int der )
{
int i, j, x , aux;
i = izq;
j = der;
x = A[ (izq + der) /2 ];
do{
while( (A[i] < x) && (j <= der) )
{
i++;
}
while( (x < A[j]) && (j > izq) )
{
j--;
}
if( i <= j )
{
aux = A[i]; A[i] = A[j]; A[j] = aux;
i++; j--;
}
}while( i <= j );
if( izq < j )
quicksort( A, izq, j );
if( i < der )
quicksort( A, i, der );
}
método de burbuja
Borrar#include
using namespace std;
int main(int argc, char *argv[] )
??<
int i,j,k,cn;
int n??('cn'??);
cout<<"Cantidad de numeros que desea Ingresar: ";cin>>cn;
for(i=0;i>n[i];
}
for(i=1;in[j+1])
{k=n[j+1]; n[j+1]=n[j]; n[j]=k;}
}
}
for(i=0;i
#include
ResponderBorrarusing namespace std;
const unsigned N = 5;
typedef unsigned Cuadrado[N][N];
void introDatos(Cuadrado& c);
bool es_magica(const Cuadrado& c);
unsigned resultado(const Cuadrado& c);
bool filas(const Cuadrado& c, unsigned res);
bool columnas(const Cuadrado& c, unsigned res);
bool d1(const Cuadrado& c, unsigned res);
bool d2(const Cuadrado& c, unsigned res);
int main() {
Cuadrado c;
introDatos(c);
if(es_magica(c)){
cout << "El cuadrado es magico" << endl;
}else{
cout << "No es un cuadrado magico" << endl;
}
return 0;
}
void introDatos(Cuadrado& c){
cout << "Introduzca numeros entre 1 y 25 sin repetir ninguno: " << endl;
for(unsigned i=0;i> c[i][j];
}
}
}
bool es_magica(const Cuadrado& c){
unsigned res = resultado(c);
if((!filas(c,res))||(!columnas(c,res))||(!d1(c,res))||(!d2(c,res))){
return false;
}else{
return true;
}
}
unsigned resultado(const Cuadrado& c){
unsigned res = 0;
for(unsigned j=0;j=0)&&(j>=0)){
suma+=c[i][j];
i--;
j--;
}
if(suma!=res){
igual = false;
}
return igual;
}
que les parece el metodo???.atte.oscar huaripata ocas
Borrar