Resultados 1 al 8 de 8

Tema: Quien es capaz de realizar este ordenamiento (no importa el lenguaje) ¡¡Pagare!!

  1. #1 Quien es capaz de realizar este ordenamiento (no importa el lenguaje) ¡¡Pagare!! 
    Iniciado
    Fecha de ingreso
    Mar 2009
    Mensajes
    4
    Descargas
    0
    Uploads
    0
    Epales amigos, en la univ me mandaraon hacer un trabajo que debo entregar de forma textual es decir impreso.. bueno la cuestion es que dispongo de poco tiempo y poco conocimiento del tema, el trabajo me es sumamente importante pasarlo ya que vale 30% de la nota final y muchos lo han mandodo hacer con profesores y otros no saben que hacer aun.
    Ah y de paso es para entregarlo este jueves 02-04-2009 es por ello que a quien me ayude estoy dispuesto agradecerle infinitamente y de ser necesario le pagere con un dominio .com privado por 1 año o si es de venezuela con una tarjeta de saldo celular.

    El problema es el siguiente y lo copiare exactamente como lo paso el profesor:


    -------------------------------------------------------------------------------------------
    Un requerimiento muy comun de un sistema de informacion es el ordenamiento de archivos. Los archivos de transacciones deben ordenarse para realizar una actualizacion mas eficiente de los archivos maestros secuenciales; los datos de la salida deben ordenarse para obtener un formato adecuado en la generacion de reportes secuenciales. El uso de metodos de ordenamiento eficientes puede ser importante para el completo desempeño de una instalacion de computo y de un sistema de informacion. Igualmente es muy importante estudiar las tecnicas para encontrar valores de datos particulares en una estructura, es decir, lo que se conoce con el nombre de tecnicas de busqueda.

    EN FUNCION DE LO ANTES EXPUESTO SE PIDE ENTONCES:

    Dado el siguiente vector compuesto de 25 numeros:
    915, -2, 102, -4, 800, 17, 450, 313, 9, 501, 308, 1, 109, 22, 3, 41, 215, 14, 312, 25, 200, 8, 320, 500

    Realizar un programa en el lenguaje de su preferencia que permita ordenarlo utilizando el metodo conocido como Shell sort Shell sorty por medio de la tecnica de busqueda binaria encontrar el valor 500

    Alumno este trabajo debe ser entregado con un informe que contenga la explicacion de ambos metodos, Diagrama de flujo del programa, Explicacion de variables y Conclusion de lo realizado.
    -------------------------------------------------------------------------------------------
    Citar  
     

  2. #2  
    Moderador Global
    Fecha de ingreso
    Aug 2005
    Mensajes
    6.279
    Descargas
    7
    Uploads
    0
    Mira, un ejemplo de función para bash:
    (http://smith-li.com/sort.bash)
    Código:
    shellsort() {
    	SORTEDARRAY=("$@")
    	local shell i j t
    	for (( shell=1; shell<${#SORTEDARRAY[@]}; 1 )); do
    		(( shell=2*shell+1 )) # Just let the shell grow.
    	done
    
    	while [[ 1 ]]; do
    		(( shell=(shell-1)/2 ))
    		for (( i=shell; i<${#SORTEDARRAY[@]}; i++)); do
    			for (( j=i-shell; j>=0; j-=shell )); do
    				(( SORTEDARRAY[j] > SORTEDARRAY[j+shell] )) || break
    				t="${SORTEDARRAY[j]}"
    				SORTEDARRAY[j]="${SORTEDARRAY[j+shell]}"
    				SORTEDARRAY[j+shell]="$t"
    			done
    		done
    		(( shell > 1 )) || break
    	done
    }

    En C, sería así:

    Código:
    shellsort(itemType a[], int l, int r)
      { int i, j, k, h; itemType v;
        int incs[24] = { 915, -2, 102, -4, 800, 17, 450, 313, 9, 501, 308, 1, 109, 22, 3, 41, 215, 14, 312, 25, 200, 8, 320, 500 };
        for ( k = 0; k < 24; k++)
          for (h = incs[k], i = l+h; i <= r; i++)
            { 
              v = a[i]; j = i;
              while (j >= h && a[j-h] > v)
                { a[j] = a[j-h]; j -= h; }
              a[j] = v; 
            } 
      }
    Salu2

    . . . . . . . . . . . . . . . . . . . .
    [[ NORMAS DEL FORO ]]
    . . . . . . . . . . . . . . . . . . . .
    __________
    Citar  
     

  3. #3  
    Iniciado
    Fecha de ingreso
    Mar 2009
    Mensajes
    4
    Descargas
    0
    Uploads
    0
    Primera vez que oigo ese "Bash"

    y que diferencia hay entre ese codigo de C a este:

    Código:
    #include <stdio.h>
    #define TAM 25
     
    void shellsort(int v[], int n);
     
    int main ()
    {
        int indice;
        int vector[TAM] =   {
                            915, -2, 102, -4, 800,
                            17, 450, 313, 9, 501,
                            308, 1, 109, 22, 3,
                            41, 215, 14, 312, 25,
                            200, 8, 320, 500
                            };
     
        printf("Desordenados:\n");
        for (indice=0;indice<TAM;indice++)
        {
            printf("%d\n",vector[indice]);               
        }
     
        shellsort(vector,TAM);
     
        printf("Ordenados:\n");
        for (indice=0;indice<TAM;indice++)
        {
            printf("%d\n",vector[indice]);               
        }
     
     
        getchar();
     
        return (0);
     
    }
     
    /* shellsort: ordena v[0]...v[n-1] en orden ascendente */
    void shellsort(int v[], int n)
    {
         int gap;
         int i;
         int j;
         int temp;
     
         for (gap=n/2;gap>0;gap/=2)
             for (i=gap;i<n;i++)
                 for (j=i-gap;j>=0&&v[j]>v[j+gap];j-=gap)
                 {
                    temp=v[j];
                    v[j]=v[j+gap];
                    v[j+gap]=temp; 
                 } 
    }
    Que hace el que tu me diste y que extra hace este...
    Citar  
     

  4. #4  
    Moderador HH
    Fecha de ingreso
    Feb 2002
    Ubicación
    México
    Mensajes
    1.155
    Descargas
    4
    Uploads
    0
    Cita Iniciado por .FF Ver mensaje
    Primera vez que oigo ese "Bash"

    y que diferencia hay entre ese codigo de C a este...

    Que hace el que tu me diste y que extra hace este...
    Pues ya tienes los codigos fuente, para saber lo que hacen haz una corrida de escritorio (con una hoja de papel y lapiz). Aprender a leer código te ayudará mucho en la programación.

    Saludos.
    Mientras el mundo permanezca no acabarán la fama y la gloria de México-Tenochtitlan
    Citar  
     

  5. #5  
    Iniciado
    Fecha de ingreso
    Mar 2009
    Mensajes
    4
    Descargas
    0
    Uploads
    0
    A que te refieres con esto??
    Cita Iniciado por Giskard Ver mensaje
    haz una corrida de escritorio (con una hoja de papel y lapiz)
    Citar  
     

  6. #6  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    a que hagas una traza del programa manualmente...
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  7. #7  
    Iniciado
    Fecha de ingreso
    Mar 2009
    Mensajes
    4
    Descargas
    0
    Uploads
    0
    Estoy mas nulo :| eso me pasa por faltar tanto a clase :P aun siento que me hablan en chino
    Citar  
     

  8. #8  
    Moderador HH
    Fecha de ingreso
    Feb 2002
    Ubicación
    México
    Mensajes
    1.155
    Descargas
    4
    Uploads
    0
    Cita Iniciado por .FF Ver mensaje
    Estoy mas nulo :| eso me pasa por faltar tanto a clase :P aun siento que me hablan en chino
    Como dice hystd, tomas una hoja de papel, escribes los nombres de las variables y vas ejecutando cada una de las instrucciones como si tu fueras el ordenador, anotando los cambios en los valores de las variables, puedes ayudarte con dibujitos o cualquier representacion gráfica que se te ocurra, eso ayuda mucho.

    Saludos.
    Mientras el mundo permanezca no acabarán la fama y la gloria de México-Tenochtitlan
    Citar  
     

Temas similares

  1. Respuestas: 1
    Último mensaje: 13-06-2012, 05:06
  2. Quien puede ayudarme con este hask
    Por Dqrgel en el foro INGENIERIA INVERSA
    Respuestas: 1
    Último mensaje: 26-04-2007, 17:54
  3. Quien conoce este estilo?
    Por wgrande en el foro HARDWARE
    Respuestas: 2
    Último mensaje: 11-04-2003, 01:09

Marcadores

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •