| |
Somos Código Libre - C++ |
Guay!, mucho C
On 4 dic, 13:46, sAfOrAs <dsafor...@gmail.com> wrote:
> #include<iostream>
> int i, j, inc, temp;
> for(inc = 1 ; inc<n;inc=inc*3+1);
> while (inc > 0)
> A[j] = temp;
> inc/= 2;
> }
> void main ()
> leeCadena(n,A);
> }
> modificado en parte por unos amigos y yo, queriamos enternder el
> algoritmo, pese a que el c{odigo funciona perfectamente... Se trata de
> un ordenamiento basado en el método shell, pero con algunos artificios
> como el de la linea: <code>for(inc = 1 ; inc<n;inc=inc*3+1);</code>,
> donde el inc incrementa acabada la ejecucion del algoritmo interno,
> pese a ello, al hacer la prueba de escritorio parece que el programa
> no tuviera un fin (se darán cuenta si lo hacen), o en todo caso a
> pique que no me estoy dando cuenta del error que estoy cometiendo, de
> todas maneras les paso el código para que lo revisen.
> la libreria está en los repositorios...
> #include"leearreglo.h"
> using namespace std;
> #define largo 50
> void ordenShell(int A[],int n)
> {
> {
> for (i=inc; i < n; i++)
> {
> j = i;
> temp = A[i];
> while ((j >= inc) && (A[j-inc] > temp))
> {
> A[j] = A[j - inc];
> j = j - inc;
> }
> }
> }
> {
> int A[largo],n;
> do{
> cout<<"Cantidad de numeros a ingresar: ";cin>>n;
> if(n<=0||n>largo)
> cout<<"Debe ingresar un valor > a 0 y < a "<<largo<<endl;
> }while(n<=0||n>largo);
> ordenShell(A,n);
> muestraCadena(n,A);