ORDENAR VECTOR PLEASE!!

zhergio
16 de Marzo del 2006
Orden de vector en forma ascendente(NO MÉTODO BURBUJA)

Noel Solw
16 de Marzo del 2006
// program k4_4.CPP - page 69
// select sort.
// 28/7/2001
// written in Borland CPP ver 3.1

#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>

#define MAX 18

void Show(int *a)
{
for(int i = 0; i < MAX; i++)
cout << setw(4) << a[i];
cout << endl;
} // SHOW

void Init(int *a)
{
for(int i = 0; i < MAX; i++)
a[i] = random(100);
} // INIT

void Swap(int &a,int &b)
{
int c = a;
a = b;
b = c;
} // SWAPS INTEGER

void Sort(int *a)
{
for(int first = 0; first < MAX-1; first++)
{
int index = first;
for(int i = first+1; i < MAX; i++)
if (a[i] < a[index])
index = i;
Swap(a[index],a[first]);
Show(a);
}
} // SORT

void main()
{
clrscr();
randomize();
int a[MAX];
cout << "select sort : " << endl << endl;
Init(a);
Show(a);
cout << endl;
Sort(a);
cout << endl << "end of program - good bye ! ! !n";
getch();
} // MAIN


crisam
16 de Marzo del 2006
// este te ordena con el algoritmo shell espero que te sirva

#include<stdio.h>
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<dos.h>



void ingreso(int [], int );
void ordenar(int [], int );
void verlista(int[],int );

void main()
{
const max = 20;
int vector[max];
clrscr();
ingreso(vector,max);
verlista(vector,max);
printf("nn");
ordenar(vector,max);
verlista(vector,max);
}

void ingreso(int vector[], int max)
{
randomize();
for (int x=0; x<max ;x++)
{
vector[x]=random(9)+1;
}
}
void verlista(int vector[],int max)
{
for(int x=0;x<max;x++)
{
printf("%10d", vector[x]);
delay(5);
}
}

void intercambio(int &a, int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}


void ordenar(int vector[], int max)
{
int i,j,d,l;
d=1;
while(d < max)
d *= 2;

do{
d = d/2;
for(i=0;i<max-d;i++)
{
j=i;
l=j+d;
while(j >= 0 && vector[l] < vector[j])
{
intercambio(vector[l],vector[j]);
l=j;
j=j-d;
}
}
}while(d>0);
}