// Esercizi vol2p099 // es01: scrivi un programma che generi casualmente 30 numeri di valore minore di 1000, li memorizzi in un vettore e li visualizzi dal piu' piccolo al piu' grande. // es02: scrivi un programma che generi casualmente N numeri di valore minore di 100 (dove N e' una costante manifesta), li memorizzi in un vettore e cancelli i numeri doppi presenti sostituendoli con 0. Quindi li ordini in senso decrescente. // es03: scrivi un programma che generi casualmente N numeri di valore minore di 100 (dove N e' una costante manifesta), li memorizzi in un vettore e cancelli i numeri doppi presenti sostituendoli con 0. Quindi li ordini in seso crescente ignorando il numero 0 e li visualizzi sullo schermo. // es04: scrivi un programma che generi casualmente N numeri di valore minore di 1000 (dove N e' una costante manifesta), li memorizzi in un vettore e cancelli i numeri inferiori di un numero MAX letto da tastiera. Quindi visualizzi il vettore ordinato in senso crescente. // es05: riordina gli elementi di un vettore di N numeri generati casualmente con range (-20,+20) in modo che tutti i valori negativi siano copiati in un nuovo vettore NEGATIVI e tutti i valori non negativi ivengano messi in un vettore POSITIVI. Quindi visualizzi i due gruppi di dati ordinati in senso crescente. // es06: effettua l'algoritmo di insert-sort su un vettore disordinato gia' presente in memoria senza utilizzare un vettore d'appoggio (ordinamento inplace). // es07: riempi in modalita' random un vettore di 20 elementi con numeri compresi tra 1 e 100, quindi effettua l'ordinamento mediante l'algoritmo insert-sort utilizzando un vettore d'appoggio (ordinamento non inplace). // es08: effettua l'algoritmo di sele-sort su un vettore disordinato gia' presente in memoria senza utilizzare un vettore d'appoggio (ordinamento inplace). // es09: effettua l'ordinamento di un vettore mediante l'algoritmo "per enumerazione": conoscendo il valore massimo degli elementi presenti in un vettore, esegui un ciclo a conteggio con tale valore come estremo superiore e, a ogni iterazione, verifica se il valore corrente dell'indice e' presente nel vettore da ordinare; in tal caso copialo in un nuovo vettore. // es10: effettua l'ordinamento di un vettore (con elementi tutti diversi) mediante un algoritmo counting-sort: conoscendo il valore massimo degli elementi presenti in un vettore, per ogni elementi calcolo quanti altri elementi nel vettore hanno valore minore; posiziona quindi l'elemento corrente in un nuovo vettore dopo aver lasciato tanti spazi vuoti quanti sono gli elementi calcolati in precedenza. // es11: effettua la variante del counting-sort nel caso in cui siano presenti elementi di uguale valore. Effettua lo studio della complessita' di calcolo nel caso migliore, medio e peggiore. // es12: realizza un programma che riempia casualmente un vettore per n volte per ciascuna delle seguenti dimensioni: 100, 1000, 10000. Utilizza tutti gli algoritmi di ordinamento conosciuti e crea una tabella che permetta di effettuare la comparazione dei tempi di elaborazione di tali algoritmi, calcolando la media dei tempi di elaborazione sulle n volte che viene generato il vettore della medesima dimensione. Produci infine una tabella con la media generale dei tempi in modo da ottenere un indice unico che classifichi gli algoritmi indipendentemente dalla dimensione del problema.