Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    6

    ordine alfabetico lento VB08

    ciao a tutti, sono nuovo e spero di fare giusto.
    uso visual basic 2008,
    ho creato un piccolo programmino che al suo interno ha un doppio ciclo per
    ordinare le stringhe di un vettore in ordine alfabetico, e funziona, il problema
    è che le il vettore ha circa 250000 componenti, quindi per un fare un ciclo lo fa
    velocemente, ma per fare un ciclo dentro ad un altro ciclo vuol dire che deve fare
    il "giro" del vettore 250000x250000 volte, e ci mette sui 20 minuti.
    volevo chiedervi se esiste un algoritmo piu semplice in termini di velocità, o qualcosa che comunque velocizzi.
    grazie

    i cicli che uso sono questi:

    codice:
               
     i = numelem - 1
                j = 0
                While j < numelem - 1
                    While i > 0
                        If rime(i) > rime(i - 1) Then
                            appoggio = rime(i)
                            rime(i) = rime(i - 1)
                            rime(i - 1) = appoggio
                        End If
                        i = i - 1
                    End While
                    i = numelem - 1
                    j = j + 1
                End While

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Devi sfruttare il framework altrimenti non ha senso ... al posto del tuo programma scrivi semplicemente

    Array.Sort(rime)

    P.S. Dai un'occhiata al regolamento ... sei in una sezione sbagliata, non hai indicato il linguaggio nel titolo e non hai usato i tag CODE ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    6
    già hai ragione,
    comunque con il sort ho risolto e funziona perfettamente.
    non sapevo proprio che esistesse un comando apposta, io nella mia ignoranza me l'ero
    creato. grazie mille

    se posso ti chiedo un'ultima cosa, ogni volta che faccio il debug del programma, lui si deve memorizzare circa 250000 stringhe in un vettore, quindi solo per aprire il programma ci mette 1 minuto e 20 secondi. anche qui si può ottimizzare i tempi o non si può far niente?

    grazie

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Originariamente inviato da gigibd
    ciao a tutti, sono nuovo e spero di fare giusto.
    uso visual basic 2008
    Ho provveduto io a spostare la discussione nell'area appropriata e a correggere il titolo.

    Per il futuro, ti suggerisco di leggere il Regolamento di quest'area per conoscere tutte le norme da seguire nell'apertura e conduzione delle discussioni sul forum.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Dipende come li carichi e da dove ... non ti posso dire nulla sull'ottimizzazione di qualcosa che non conosco ...

    In ogni caso, per fare delle prove durante lo sviluppo, potresti limitarti a trattare solo un numero limitato (100 o 200) stringhe ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    6
    ok, grazie alka e scusatemi.

    le assegnazioni le faccio fare all'apertura del programma tramite il form:

    codice:
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            parole(1) = "banana"
            parole(2) = "pesca"
            parole(3) = "zeta"
            parole(4) = "cannella"
            parole(5) = "mela"
            parole(6) = "pera"
            parole(7) = "giallo"
            parole(8) = "kiwi"
            parole(9) = "beta"
            parole(10) = "seta"
    
        End Sub
    per quello che conosco io è l'unico modo per assegnarle, poi se le assegno all'apertura o al click di un pulsante il tempo è comunque lo stesso.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da gigibd
    le assegnazioni le faccio fare all'apertura del programma tramite il form:
    E assegni così 250.000 stringhe ?!!?

    Beh ... ho capito che sei agli inizi ma non dovresti scrivere programmi se non hai acquisito un minimo di confidenza con gli elementi di base della programmazione.

    Lo sai che esistono i file ? (non dico i database ma i semplici file).

    Carica i dati da un file all'inizio del programma ...

    Ovvero, con un database, non li caricare affatto tutti ma tratta quelli che ti servono nel momento in cui ti servono.

    In definitiva, fermati un attimo e usa un buon libro per arrivare passo passo a fare cose sempre più complesse.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    6
    si si certo mi rendo conto di avere molte lacune. Dai allora "studio" e vediamo se ne vengo fuori. grazie comunque

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non era per rimarcare le "lacune" ... le abbiamo avuto tutti ...

    Ma per evitarti delle inutili perdite di tempo dietro a problemi che non esistono in quanto sono solo il frutto di mancanze attuali della tua preparazione.

    Non perdere quindi tempo a "caricare da codice 250000 stringhe" ma studia quello che ti serve in futuro ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.