<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>Manuali Blog &#187; JAVA</title>
	<atom:link href="http://manualiblog.com/manuali/informatica/programmazione/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://manualiblog.com</link>
	<description>Manuali e Guide recensite per voi</description>
	<lastBuildDate>Fri, 18 Nov 2011 10:40:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Progetto di algoritmi e strutture dati in Java</title>
		<link>http://manualiblog.com/progetto-di-algoritmi-e-strutture-dati-in-java/</link>
		<comments>http://manualiblog.com/progetto-di-algoritmi-e-strutture-dati-in-java/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 14:37:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Demetrescu Camil]]></category>
		<category><![CDATA[Ferraro Petrillo Umberto]]></category>
		<category><![CDATA[Finocchi Irene]]></category>
		<category><![CDATA[Italiano Giuseppe F.]]></category>
		<category><![CDATA[Mc Graw Hill]]></category>
		<guid isPermaLink="false">http://manualiblog.com/?p=951</guid>
		<description><![CDATA[Il testo, concepito soprattutto per i corsi universitari delle facoltà di Ingegneria e di Scienze, offre unintroduzione allo studio di algoritmi e di strutture dati orientato alla realizzazione di programmi efficienti in Java e affronta con rigore metodologico aspetti di progettazione e di ingegnerizzazione del codice. Particolare enfasi viene data anche al trasferimento in applicazioni [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>Il testo, concepito soprattutto per i corsi universitari delle facoltà di Ingegneria e di Scienze, offre unintroduzione allo studio di algoritmi e di strutture dati orientato alla realizzazione di programmi efficienti in Java e affronta con rigore metodologico aspetti di progettazione e di ingegnerizzazione del codice.<br />
Particolare enfasi viene data anche al trasferimento in applicazioni reali delle metodologie algoritmiche illustrate. Il materiale didattico è infatti accompagnato, passo dopo passo, da un progetto software che prevede la realizzazione di un motore di ricerca semplificato. Il progetto software viene presentato, discusso e articolato nei vari capitoli del testo, ognuno dei quali ne prevede la realizzazione di una parte come applicazione conclusiva delle tecniche algoritmiche studiate nel capitolo.</p>
<p>Gli autori<br />
Camil Demetrescu è ricercatore presso la facoltà di Ingegneria dellUniversità degli Studi di Roma &#8220;La Sapienza&#8221;.<br />
Umberto Ferraro Petrillo è ricercatore presso la facoltà di Scienze statistiche dellUniversità degli Studi di Roma &#8220;La Sapienza&#8221;.<br />
Irene Finocchi è ricercatrice presso la facoltà di Scienze dellUniversità degli Studi di Roma &#8220;La Sapienza&#8221;.<br />
Giuseppe F. Italiano è professore ordinario presso la facoltà di Ingegneria dellUniversità degli Studi di Roma &#8220;Tor Vergata&#8221;.</p>
<h3>Indice di Progetto di algoritmi e strutture dati in Java</h3>
<p>1) Algoritmi e loro implementazione in Java<br />
2) Strutture dati elementari<br />
3) Alberi<br />
4) Ordinamento<br />
5) Selezione<br />
6) Alberi di ricerca<br />
7) Tabelle hash<br />
 <img src='http://manualiblog.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> Code con priorità<br />
9) Union-find<br />
10) Grafi e visite di grafi<br />
11) Minimo albero ricoprente<br />
12) Cammini minimi</p>
<p>Prefazione</p>
<p>1 Algoritmi e loro implementazione in Java<br />
1.1 Ciclo di sviluppo di codice algoritmico . . . . . . . . . . . . . . . 2<br />
1.2 Fase progettuale . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
1.2.1 Analisi dei requisiti . . . . . . . . . . . . . . . . . . . . . 4<br />
1.2.2 Valutazione della difficolta&#8217; intrinseca del problema . . . . 4<br />
1.2.3 Progetto di un algoritmo risolutivo . . . . . . . . . . . . . 4<br />
1.2.4 Analisi di correttezza . . . . . . . . . . . . . . . . . . . . 5<br />
1.2.5 Analisi delle prestazioni in un modello di costo teorico.. 5<br />
1.2.6 Progetto di algoritmi piu&#8217; efficienti . . . . . . . . . . . . . 9<br />
1.3 Fase realizzativa . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
1.3.1 Implementazioneinunlinguaggiodiprogrammazione.. 10<br />
1.3.2 Collaudoeanalisisperimentale . . . . . . . . . . . . . . 12<br />
1.3.3 Metodologiedianalisisperimentale . . . . . . . . . . . . 15<br />
1.3.4 Messaapuntoeingegnerizzazione . . . . . . . . . . . . . 19<br />
1.4 Ingredientiperl’implementazioneinJava . . . . . . . . . . . . . 21<br />
1.4.1 Stessainterfaccia,diverserealizzazioni . . . . . . . . . . 21<br />
1.4.2 Tipigenericieboxing . . . . . . . . . . . . . . . . . . . 23<br />
1.4.3 Testdiuguaglianza:ilmetodo equals . . . . . . . . . . 24<br />
1.4.4 Ordinamentonaturale:ilmetodo compareTo . . . . . . 25<br />
1.4.5 Gestionedeglierrori:eccezioni . . . . . . . . . . . . . . 27<br />
1.4.6 Iteratori . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
1.4.7 IlJavaCollectionsFramework . . . . . . . . . . . . . . . 30<br />
1.5 Progettomotorediricerca . . . . . . . . . . . . . . . . . . . . . 31<br />
1.6 Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />
1.7 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36</p>
<p>2 Strutturedatielementari<br />
2.1 TipididatoeinterfacceJava . . . . . . . . . . . . . . . . . . . . 37<br />
2.2 StrutturedatieclassiJava . . . . . . . . . . . . . . . . . . . . . . 38<br />
2.3 Tecnicheperrappresentarecollezionidioggetti . . . . . . . . . . 43<br />
2.3.1 Struttureindicizzate:array . . . . . . . . . . . . . . . . . 43<br />
2.3.2 Strutturecollegate:recordepuntatori . . . . . . . . . . . 47<br />
2.4 Tipodidatopila . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />
2.5 Tipodidatocoda . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />
2.6 Progettomotorediricerca:lexiconeindicediretto . . . . . . . . 58<br />
2.7 Analisisperimentale . . . . . . . . . . . . . . . . . . . . . . . . 63<br />
2.8 Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />
2.9 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69</p>
<p>3 Alberi<br />
3.1 Definizionipreliminarisuglialberi . . . . . . . . . . . . . . . . . 71<br />
3.2 Tipodidatoalbero . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />
3.3 Tipodidatoalberobinario . . . . . . . . . . . . . . . . . . . . . 75<br />
3.4 Rappresentazioniindicizzate . . . . . . . . . . . . . . . . . . . . 77<br />
3.4.1 Vettorepadri . . . . . . . . . . . . . . . . . . . . . . . . 78<br />
3.4.2 Vettoreposizionale . . . . . . . . . . . . . . . . . . . . . 81<br />
3.5 Rappresentazionicollegate . . . . . . . . . . . . . . . . . . . . . 82<br />
3.5.1 Puntatoriaifigli . . . . . . . . . . . . . . . . . . . . . . 83<br />
3.5.2 Listafigli . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />
3.5.3 Primofiglio-fratellosuccessivo . . . . . . . . . . . . . . 86<br />
3.6 Visitedialberi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88<br />
3.6.1 Visitainprofondit`a &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230; 89<br />
3.6.2 Visitainampiezza . . . . . . . . . . . . . . . . . . . . . 92<br />
3.7 Progettomotorediricerca:compressione . . . . . . . . . . . . . 94<br />
3.7.1 IcodicidiHuffman . . . . . . . . . . . . . . . . . . . . . 94<br />
3.7.2 GlialberidiHuffman . . . . . . . . . . . . . . . . . . . . 95<br />
3.8 Analisisperimentale . . . . . . . . . . . . . . . . . . . . . . . . 100<br />
3.9 Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102<br />
3.10 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103</p>
<p>4 Ordinamento<br />
4.1 Ordinareintempoquadratico . . . . . . . . . . . . . . . . . . . . 106<br />
4.1.1 Ordinamentiincrementali . . . . . . . . . . . . . . . . . 106<br />
4.1.2 Ordinamentoabolle . . . . . . . . . . . . . . . . . . . . 109<br />
4.2 Mergesort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />
4.3 Heapsort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113<br />
4.3.1 Strutturadatiheap . . . . . . . . . . . . . . . . . . . . . 113<br />
4.3.2 Ordinare in loco mediante heap . . . . . . . . . . . . . . 117<br />
4.4 Quicksort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118<br />
4.5 Ordinareintempolineare . . . . . . . . . . . . . . . . . . . . . . 121<br />
4.5.1 Integersort . . . . . . . . . . . . . . . . . . . . . . . . . 122<br />
4.5.2 Radixsort . . . . . . . . . . . . . . . . . . . . . . . . . . 123<br />
4.6 Progettomotorediricerca:indiceinverso . . . . . . . . . . . . . 126<br />
4.7 Analisisperimentale . . . . . . . . . . . . . . . . . . . . . . . . 132<br />
4.8 Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136<br />
4.9 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137</p>
<p>5 Selezione<br />
5.1 Selezioneperpiccolivaloridi k . . . . . . . . . . . . . . . . . . 141<br />
5.1.1 Ricercadelsecondominimo . . . . . . . . . . . . . . . . 142<br />
5.1.2 L’algoritmoHeapselect . . . . . . . . . . . . . . . . . . . 143<br />
5.2 Calcolorandomizzatodelmediano . . . . . . . . . . . . . . . . . 144<br />
5.3 Calcolodeterministicodelmediano . . . . . . . . . . . . . . . . 146<br />
5.4 Progettomotorediricerca:ranking . . . . . . . . . . . . . . . . . 151<br />
5.5 Analisisperimentale . . . . . . . . . . . . . . . . . . . . . . . . 157<br />
5.6 Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160<br />
5.7 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160</p>
<p>6 Alberi di ricerca<br />
6.1 Alberibinaridiricerca . . . . . . . . . . . . . . . . . . . . . . . 167<br />
6.2 AlberiAVL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177<br />
6.2.1 Ribilanciamentotramiterotazioni . . . . . . . . . . . . . 178<br />
6.2.2 Realizzazionedirotazionisempliciedoppie . . . . . . . . 181<br />
6.2.3 Inserimentiecancellazionidichiavi . . . . . . . . . . . . 185<br />
6.3 Alberi2-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188<br />
6.4 B-alberi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193<br />
6.5 Alberi2-3-4ealberirosso-neri . . . . . . . . . . . . . . . . . . . 198<br />
6.6 Analisisperimentale . . . . . . . . . . . . . . . . . . . . . . . . 205<br />
6.7 Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212<br />
6.8 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212</p>
<p>7 Tabelle hash<br />
7.1 Tabelleadaccessodiretto . . . . . . . . . . . . . . . . . . . . . . 217<br />
7.2 Tabellehash&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.. 220<br />
7.2.1 Hashingperfetto . . . . . . . . . . . . . . . . . . . . . . 221<br />
7.2.2 Altretecnichedihashing . . . . . . . . . . . . . . . . . . 223<br />
7.3 Listedicollisione . . . . . . . . . . . . . . . . . . . . . . . . . . 227<br />
7.4 Indirizzamentoaperto . . . . . . . . . . . . . . . . . . . . . . . . 231<br />
7.4.1 Funzionidiscansione . . . . . . . . . . . . . . . . . . . . 235<br />
7.4.2 Generazionedinumeriprimi . . . . . . . . . . . . . . . . 239<br />
7.4.3 Cancellazionedichiavi . . . . . . . . . . . . . . . . . . . 240<br />
7.4.4 Analisidelcostodiscansione . . . . . . . . . . . . . . . 243<br />
7.5 Analisisperimentale . . . . . . . . . . . . . . . . . . . . . . . . 244<br />
7.6 Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251<br />
7.7 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253</p>
<p>8 Code con priorita&#8217; 255<br />
8.1 d-heap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255<br />
8.2 Heapbinomiali . . . . . . . . . . . . . . . . . . . . . . . . . . . 268<br />
8.3 Analisisperimentale . . . . . . . . . . . . . . . . . . . . . . . . 279<br />
8.4 Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286<br />
8.5 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287</p>
<p>9 Union-find<br />
9.1 Approccielementarialproblemaunion-find . . . . . . . . . . . . 294<br />
9.1.1 AlgoritmiditipoQuickFind . . . . . . . . . . . . . . . . 294<br />
9.1.2 AlgoritmiditipoQuickUnion . . . . . . . . . . . . . . . 296<br />
9.2 Bilanciamentonell’operazioneunion . . . . . . . . . . . . . . . . 298<br />
9.2.1 BilanciamentoperalgoritmiditipoQuickFind . . . . . . 299<br />
9.2.2 BilanciamentoperalgoritmiditipoQuickUnion . . . . . 301<br />
9.3 Euristichedicompressionenell’operazionefind . . . . . . . . . . 306<br />
9.4 Analisisperimentale . . . . . . . . . . . . . . . . . . . . . . . . 309<br />
9.5 Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315<br />
9.6 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316</p>
<p>10 Grafi e visite di grafi<br />
10.1 Definizionipreliminarisuigrafi . . . . . . . . . . . . . . . . . . . 321<br />
10.2 Tipodidatografo . . . . . . . . . . . . . . . . . . . . . . . . . . 323<br />
10.3 Strutturedatiperrappresentaregrafi . . . . . . . . . . . . . . . . 327<br />
10.3.1 Listadiarchi . . . . . . . . . . . . . . . . . . . . . . . . 327<br />
10.3.2 Listediadiacenza . . . . . . . . . . . . . . . . . . . . . . 329<br />
10.3.3 Matricediadiacenza . . . . . . . . . . . . . . . . . . . . 336<br />
10.3.4 Matricediincidenza . . . . . . . . . . . . . . . . . . . . 337<br />
10.4 Visitedigrafi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338<br />
10.5 Visitainampiezza . . . . . . . . . . . . . . . . . . . . . . . . . . 344<br />
10.6 Visitainprofondit`a &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;. 351<br />
10.7 Progettomotorediricerca:crawling . . . . . . . . . . . . . . . . 359<br />
10.8 Analisisperimentale . . . . . . . . . . . . . . . . . . . . . . . . 364<br />
10.9 Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367<br />
10.10 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368</p>
<p>11 Minimo albero ricoprente<br />
11.1 Propriet`a deiminimialberiricoprenti . . . . . . . . . . . . . . . . 372<br />
11.2 AlgoritmodiKruskal . . . . . . . . . . . . . . . . . . . . . . . . 374<br />
11.2.1 Implementazionemedianteunion-find . . . . . . . . . . . 375<br />
11.3 AlgoritmodiPrim . . . . . . . . . . . . . . . . . . . . . . . . . . 379<br />
11.3.1 Implementazionemediantecodeconpriorit`a &#8230;&#8230;. 382<br />
11.4 Progettomotorediricerca:clustering . . . . . . . . . . . . . . . 386<br />
11.5 Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391<br />
11.6 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392</p>
<p>12 Cammini minimi<br />
12.1 Camminiminimiedistanzeinungrafo . . . . . . . . . . . . . . 395<br />
12.2 Latecnicadelrilassamento . . . . . . . . . . . . . . . . . . . . . 398<br />
12.3 AlgoritmodiBellman,FordeMoore . . . . . . . . . . . . . . . . 399<br />
12.3.1 Implementazionemediantecoda . . . . . . . . . . . . . . 400<br />
12.4 AlgoritmodiDijkstra . . . . . . . . . . . . . . . . . . . . . . . . 404<br />
12.4.1 Implementazionemediantecodeconpriorit`a &#8230;&#8230;. 407<br />
12.5 AlgoritmodiFloydeWarshall . . . . . . . . . . . . . . . . . . . 412<br />
12.6 Progettomotorediricerca:crawling . . . . . . . . . . . . . . . . 414<br />
12.7 Analisisperimentale . . . . . . . . . . . . . . . . . . . . . . . . 416<br />
12.8 Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418<br />
12.9 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419</p>
<p>Bibliografia 421</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://manualiblog.com/progetto-di-algoritmi-e-strutture-dati-in-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

