Arrays sortieren

Status
Nicht offen für weitere Antworten.

Sansibar007

Mitglied
Hi,

ich wollte fragen wie man Arrays sortiert, nicht mit Bubblesort oder Mergesort, will auch nur die ungraden nach Vorne haben.

Bin bis gekommen mit der Methode:

Java:
 static void ungeradeZuerst(int[] a){

             for(int i=1;a.length;i++){
                 if(a[i]%2 != 0)

Jetzt habe ich ja die ungraden, wie kriege ich das hin, dass die vorne stehen?

Vielen Dank im Voraus
 
S

SlaterB

Gast
du brauchst einen Sortieralgorithmus wie BubbleSort oder MergeSort, ohne den geht gar nix,

nur wenn es zu der kleinen Spezialaufgabe kommt, zwei Elemente zu vergleichen,
dann kommt deine Logik 'ungerade ist kleiner als gerade' zum Zuge, der Rest ist davon unabhängig,

schau dir Collections.sort/ Arrays.sort und Comparator an,
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 12.4 Vergleichen von Objekten
geht aber nur für Objekte, also z.B. Integer statt int
 

0x7F800000

Top Contributor
Java:
import java.util.*;

public class _{
	public static void main(String[] args) {
		Integer[] array={4,3,5,3,2,4,5,59,65,5353,544,5345,6,7,57,46,564};
		Arrays.sort(array,new Comparator<Integer>(){
			@Override
			public int compare(Integer a, Integer b){
				int result=b%2-a%2;
				if(result==0){
					return a-b;
				}
				return result;
			}
		});
		System.out.println(Arrays.toString(array));
	}
}
geht aber nur für Objekte, also z.B. Integer statt int
nervige einschränkung. Ist es eigentlich schlimm, wenn man nur noch Wrapper-klassen benutzt, und die primitiven Typen einfach links liegen lässt?
 
Zuletzt bearbeitet:

Landei

Top Contributor
Interessantes Problem. Ohne Comparator oder Wrapper, sehr effizient:
Java:
  private static boolean even(int n) {
    return n % 2 == 0;
  }

  private static void oddEvenSort(int[] array) {
    int i = 0;
    int j = array.length-1;
    while(i < j) {
      if(!even(array[i])) {
        i++;
      } else if(even(array[j])) {
        j--;
      } else {
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
        i++;
        j--;
      }
    }
  }

Edit: überflüssige Bedingung entfernt
 
Zuletzt bearbeitet:

Sansibar007

Mitglied
Ich würde auch sagen, dass es nicht so einfach ist.

Es ist so, dass ich grade für eine Klausur lerne und dies ist eine Klausuraufgabe, die vorherigen aufgaben hatten nicht viel mehr als 10 Zeilen Code, und da wir nur auf Papier schreiben, muss es wohl einfacher gehen.
 

Landei

Top Contributor
In meiner Lieblingssprache wäre es:
Code:
val list = List(1,5,3,2,5,2,2,4,5,2,4,4,3,2,3,6)
list.filter(_%2!=0) ++ list.filter(_%2==0)
//--> res0: List[Int] = List(1, 5, 3, 5, 5, 3, 3, 2, 2, 2, 4, 2, 4, 4, 2, 6)
Java: 0 points!
 
B

bygones

Gast
In meiner Lieblingssprache wäre es:
Code:
val list = List(1,5,3,2,5,2,2,4,5,2,4,4,3,2,3,6)
list.filter(_%2!=0) ++ list.filter(_%2==0)
Java: 0 points!
pff
[groovy]
def list = [1,5,3,2,5,2,2,4,5,2,4,4,3,2,3,6]
println list.sort { it % 2 == 0 }
[/groovy]
 

Landei

Top Contributor
Selber pff!
Code:
list.sort(_%2 > _%2)
//--> res1: List[Int] = List(5, 3, 3, 3, 5, 5, 1, 6, 4, 4, 2, 2, 2, 2, 2, 4)
 

0x7F800000

Top Contributor
hhah, nur weil grad die passende methoden in der standard api ist^^ Mit so vielen Zeichen kriegt man sonstwo die gesamte Implementierung hin:
Java:
s([],[]). s([H|T],[H|R]):-1 is H mod 2,s(T,R). s([H|T],R):-append(S,[H],R),s(T,S).
:-s([1,5,3,2,5,2,2,4,5,2,4,4,3,2,3,6],X),write(X).
:pueh:
Schon schick sind da manche Sachen, das muss man den anderen JVM-Sprachen lassen. :)
Die Frage ist leider nicht, wie hübsch das aussieht, wenn alles friedlich ist, sondern wie es aussieht, wenn es hässlich wird. :autsch:
 
Zuletzt bearbeitet:

0x7F800000

Top Contributor
Was hat denn dein Prolog-Programm mit JVM-Sprachen zu tun? ???:L
Nichts? Dieser Prolog code ist nur da um Staatsfeinde zu verwirren. Ich find's halt einfach lustig^^ An diesem brainfuckigen krempel war aber im Unterschied zu groovy auch nichts schick, deswegen habe ich ja extra "JVM-Sprachen" hingeschrieben, ich meinte nur Scala und Groovy. ;)
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
O Arrays sortieren in einer Methode Java Basics - Anfänger-Themen 2
E Methoden 2 Arrays sortieren (MergeSort) Java Basics - Anfänger-Themen 3
CptK Variablen Teile eines Arrays zufällig sortieren Java Basics - Anfänger-Themen 7
U Methoden Zweidimensionales Array mit Arrays.sort sortieren? Java Basics - Anfänger-Themen 22
M Arrays sortieren und kleinster Abstand Java Basics - Anfänger-Themen 3
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
J Ungewolltes Sortieren eines Arrays Java Basics - Anfänger-Themen 4
I Hilfe bei Sortieren von Arrays Java Basics - Anfänger-Themen 1
J Interface Bubblesort soll Arrays beliebiger Referenztypen sortieren können. Java Basics - Anfänger-Themen 5
F sortieren von Arrays. Java Basics - Anfänger-Themen 4
S Methoden Sortieren: java.util.Arrays.useLegacyMergeSort Java Basics - Anfänger-Themen 4
T Arrays sortieren Java Basics - Anfänger-Themen 2
D Mehrdimensionale Arrays Sortieren Java Basics - Anfänger-Themen 5
J Arrayliste (gefüllte mit arrays) nach datum sortieren Java Basics - Anfänger-Themen 3
P arrays sortieren Java Basics - Anfänger-Themen 7
R Sortieren eines 2-dim String Arrays Java Basics - Anfänger-Themen 4
B Sortieren von Objekt Arrays nach einer Instanz Java Basics - Anfänger-Themen 8
H 2 arrays zusammen sortieren Java Basics - Anfänger-Themen 3
F Arrays sortieren -> Index merken Java Basics - Anfänger-Themen 10
T Sortieren von double Arrays Java Basics - Anfänger-Themen 4
S Arrays nach String kovertieren und sortieren Java Basics - Anfänger-Themen 4
T Suche und Sortieren in Arrays Java Basics - Anfänger-Themen 28
C sortieren von Arrays mit beliebigen Objekten Java Basics - Anfänger-Themen 2
T 2 Arrays in 1 Liste sortieren Java Basics - Anfänger-Themen 17
G Sortieren eines Arrays Java Basics - Anfänger-Themen 5
T sortieren eines arrays Java Basics - Anfänger-Themen 5
G Arrays.sort() will nicht sortieren Java Basics - Anfänger-Themen 8
G float-Array _ohne_ Arrays.sort sortieren Java Basics - Anfänger-Themen 5
J Arrays sortieren Java Basics - Anfänger-Themen 5
J Buchstabenzähler-Aufgabe mit Arrays Java Basics - Anfänger-Themen 5
DrahtEck Arrays und While-Loop Java Basics - Anfänger-Themen 50
G Kann Arrays.stream() auch auf Objekte angewant werden? Java Basics - Anfänger-Themen 40
Fynx_HD Arrays übergeben, Mehrdimensionale Arrays Zeilenabtrennung in schleifen Java Basics - Anfänger-Themen 8
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste und Arrays Java Basics - Anfänger-Themen 12
N mehrdimensionale arrays Java Basics - Anfänger-Themen 12
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
J Mehrdimensionale Arrays Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
M Arrays Java Basics - Anfänger-Themen 3
Ostkreuz Wert von Arrays summieren Java Basics - Anfänger-Themen 1
Ostkreuz Summieren von Arrays Java Basics - Anfänger-Themen 4
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
rosima26 Geordnete Arrays ausgeben Java Basics - Anfänger-Themen 31
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
E Zinsrechnung mithilfe von Arrays Java Basics - Anfänger-Themen 12
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
H Arrays befüllen Java Basics - Anfänger-Themen 43
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
D Arrays Java Basics - Anfänger-Themen 9
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
N Arrays Java Basics - Anfänger-Themen 5
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
A Arrays aufsummieren Java Basics - Anfänger-Themen 11
S Arrays aneinanderketten Java Basics - Anfänger-Themen 20
Sinan Arrays auflisten ohne Wiederholung Java Basics - Anfänger-Themen 28
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
D Verschlüsslungsaufgabe / Arrays Java Basics - Anfänger-Themen 6
L Methode für Zweidimensionale Arrays Java Basics - Anfänger-Themen 4
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
S zweidimensionale char arrays Java Basics - Anfänger-Themen 14
J Methoden Mehrdimensionale Arrays übereinander legen Java Basics - Anfänger-Themen 5
D Verwirrung bei Streams aus primitiven Arrays Java Basics - Anfänger-Themen 2
P Arrays mit verschiedenen Längen miteinander dividieren. Java Basics - Anfänger-Themen 1
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
N 2D Arrays jedes xy vergleichen Java Basics - Anfänger-Themen 7
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
Zeppi Arrays[i] Java Basics - Anfänger-Themen 7
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
J B-Sprache mit Arrays ausführen Java Basics - Anfänger-Themen 18
C Arrays - deklarieren, initialisieren? Ist das ein Objekt? Java Basics - Anfänger-Themen 3
K Sudoku mit 2D Arrays Java Basics - Anfänger-Themen 19
T Vertikales Histogramm mit Arrays Java Basics - Anfänger-Themen 3
JD_1998 Arrays einlesen, zwischenspeichern und wieder ausgeben Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben