Array. Schnelligkeit zwischen Dimensionen!

03/29/2015 17:19 EinfachSö#1
Hallo,

Die Überschrift mag vielleicht ein bisschen verwirren, ich wusste nur nicht, wie Ich es besser beschreiben sollte.


Ich habe vorgestern mit Java angefangen und übe den Umgang mit dem Gelernten.
Nun bin Ich gerade dabei ein Programm zu schreiben, dass die Primzahlen ausrechnet und diese dann abspeichert. Array deswegen, weil Ich später wieder auf diese Primzahlen zurückgreifen möchte.
Meine Frage nun. Wenn Ich 10 Mio. Werte habe, macht es da von der Schnelligkeit oder Speicherintensität einen Unterschied ob Ich diese als 1-dim. Array abspeichere. Also dann array.length = 10.000.000
Oder ist es bei solchen Größen sinnvoller 2- oder 3-dim. Arrays zu benutzen. Die Werte würde ich dann Spaltenweise in das Array schreiben.

Mfg
EinfachSö
03/29/2015 17:26 YatoDev#2
wenn du genug arbeitspeicher hast das du 10 mio zahlen abspeichern kannst mach das ruhig in einem normalem array
03/29/2015 17:28 EinfachSö#3
Quote:
Originally Posted by »FlutterShy™ View Post
wenn du genug arbeitspeicher hast das du 10 mio zahlen abspeichern kannst mach das ruhig in einem normalem array
wird wahrscheinlich eh Etappenweise gemacht werden. 10^7 primzahlen zu errechnen dauert seine Zeit.

Aber danke ;)
03/29/2015 22:03 RunzelEier#4
10 Mio Werte zu speichern ist überhaupt kein problem.
Solange du den primitiven typ int und nicht den boxed Integer nimmst kommst du auf ~38MB (10.000.000 Einträge * 4 Byte pro Eintrag / 1024 / 1024). Das sollte dein Ram verkraften ;)

Performance mäßig gibt es überhaupt keinen boost das in mehrere dimensionen zu packen.
Je nachdem wie du die werte ausliest und wie dein compiler das optimiert könnte es sogar länger dauern.
array[i] muss einen wert auslesen
array[i][j] muss zwei werte auslesen
03/29/2015 22:48 snow#5
Wie du 10 Millionen Einträge speicherst, ist egal, weil du letztendlich 10 Millionen Einträge speichern musst.

Ob du jetzt 1000x10000 oder 1x10000000 Durchläufe machst, ist egal, ergibt beides 10 Millionen.

Was du aber beachten solltest: Je nach Algorithmus vergeudest du eine Menge Zeit.
03/30/2015 00:50 dowhile#6
10 Millionen Primzahlen? [Only registered and activated users can see links. Click Here To Register...]
03/30/2015 13:36 EinfachSö#7
Ich danke euch allen. Werde das ganze dann demnächst umsetzen.

Quote:
Originally Posted by dowhile View Post
10 Millionen Primzahlen? [Only registered and activated users can see links. Click Here To Register...]
:D