Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Insertion sort in c

    Buongiorno a tutti...

    Ho un problema da esporvi...

    premetto che sono un autodidatta e sto studiando il linguaggio c dal libro "Linguaggio C - Guida alla programmazione 3/ed
    di: Alessandro Bellini, Andrea Guidi "

    mi si chiede in un esercizio di scrivere un programma che ordini gli elementi di un vettore man mano che si inseriscono da input...

    allora usando l'algoritmo di bubble sort non ottimizzato del tutto ho scritto questo:

    for(x=0; x<n; x++){
    cout << endl;
    cin >> vet[x];
    r=0; while(vet[x]>vet[r]) r++;
    do{p=0;
    for(y=r; y<x; y++){
    if(vet[y]>vet[y+1]){
    aux=vet[y];
    vet[y]=vet[y+1];
    vet[y+1]=aux;
    p=1;}}
    }while(p==1);

    for(v=0; v<=x; v++)
    cout << "\nVet[" << v << "] |-> " << vet[v];}

    l'algoritmo funziona...

    ma poi in rete ho trovato questo:

    void insertion_sort(int x[], int n)
    {
    int i, j, app;

    for (i=1; i<n; i++) {
    app = x[i];

    j = i-1;
    while ((j>=0) && (x[j]>app)) {
    x[j+1] = x[j];
    j--;
    }

    x[j+1] = app;
    }

    }

    l'ho studiato l'ho capito... e mi son chiesto perchè non l'ho pensato prima?

    il vero consiglio che vorrei è questo:

    secondo voi è giusto che mi rompi il capo a scrivere un algoritmo...
    quando posso studiarne uno già scritto - considerando il fatto che sto in fase di "apprendimento"?

    eppure questa cosa mi demoralizza!!!

    grazie a tutti

  2. #2
    Mi meraviglio di quante righe di codice scrivi per ordinare un vettore .... quando vi sono
    dei framework che fanno il lavoro vedi http://doc.trolltech.com/4.2/qvector.html per esempio
    poi cambiando lo http://doc.trolltech.com/4.2/qstack.html si ordina come si vuole ....

    nel C molte cose semprano preistoria per me a vederle.... :-)
    I search one translator Italian/[2]/Englisch for my QT4 Projekt:
    http://sourceforge.net/projects/qt-webdav/
    http://sourceforge.net/projects/visual-xsltproc/
    http://sourceforge.net/projects/qtexcel-xslt/

  3. #3

    Re: Insertion sort in c

    Originariamente inviato da ChrisS80
    Buongiorno a tutti...

    Ho un problema da esporvi...

    premetto che sono un autodidatta e sto studiando il linguaggio c dal libro "Linguaggio C - Guida alla programmazione 3/ed
    di: Alessandro Bellini, Andrea Guidi "

    mi si chiede in un esercizio di scrivere un programma che ordini gli elementi di un vettore man mano che si inseriscono da input...

    allora usando l'algoritmo di bubble sort non ottimizzato del tutto ho scritto questo:

    for(x=0; x<n; x++){
    cout << endl;
    cin >> vet[x];
    r=0; while(vet[x]>vet[r]) r++;
    do{p=0;
    for(y=r; y<x; y++){
    if(vet[y]>vet[y+1]){
    aux=vet[y];
    vet[y]=vet[y+1];
    vet[y+1]=aux;
    p=1;}}
    }while(p==1);

    for(v=0; v<=x; v++)
    cout << "\nVet[" << v << "] |-> " << vet[v];}

    l'algoritmo funziona...

    ma poi in rete ho trovato questo:

    void insertion_sort(int x[], int n)
    {
    int i, j, app;

    for (i=1; i<n; i++) {
    app = x[i];

    j = i-1;
    while ((j>=0) && (x[j]>app)) {
    x[j+1] = x[j];
    j--;
    }

    x[j+1] = app;
    }

    }

    l'ho studiato l'ho capito... e mi son chiesto perchè non l'ho pensato prima?

    il vero consiglio che vorrei è questo:

    secondo voi è giusto che mi rompi il capo a scrivere un algoritmo...
    quando posso studiarne uno già scritto - considerando il fatto che sto in fase di "apprendimento"?

    eppure questa cosa mi demoralizza!!!

    grazie a tutti
    Mha secondo me ti puo servire in fase di apprendimento per imparare un metodo di ragionamento e/o soluzione dei problemi, poi bhe in questi casi la domanda è sempre la stessa: perchè reinventare la ruota? Per cui, a mia modesta opinione, non appena hai appreso bene i meccanismi del C puoi permetterti di prendere codice già fatto a patto, come detto prima, di comprenderlo a fondo

    Saluti!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.