Lineare Suche / Binäre Suche

amelie123456

Mitglied
heyy,
kann mir jemand den Quellcode in eine binäre Suche umformen?
Insgesamt sind es 10 Elemente in dem Array

for (int i=0; i<objekte.length; i++){
if(objekte.getTitel().equals(pText)){
return objekte.artikelBesch();
}
}
return "Text";
 
G

Gelöschtes Mitglied 65838

Gast
Java:
.data

A:            .space 80      # integer array with 20 elements (A[20])
size_prompt:        .asciiz     "Enter a array size [between 1 and 20]: "
array_prompt:        .asciiz     "A["
sorted_array_prompt:    .asciiz     "A["
close_bracket:         .asciiz     "]"
close_bracket_equal:     .asciiz     "] = "
search_prompt:        .asciiz        "Enter search value: "
is_found:        .asciiz        " is found in "
not_found:        .asciiz        " not in array"
ensure_input:        .asciiz        "Ensure the input is sorted (Low to High)"
newline:         .asciiz     "\n"     

.text

main:   

    la $s0, A            # store address of array A in $s0
 
    add $s1, $0, $0            # create variable "size" ($s1) and set to 0
    add $s2, $0, $0            # create search variable "v" ($s2) and set to 0
    add $t0, $0, $0            # create variable "i" ($t0) and set to 0

    addi $v0, $0, 4          # system call (4) to print string
    la $a0, size_prompt         # put string memory address in register $a0
    syscall                   # print string
 
    addi $v0, $0, 5            # system call (5) to get integer from user and store in register $v0
    syscall                # get user input for variable "size"
    add $s1, $0, $v0        # copy to register $s1, b/c we'll reuse $v0
    
    addi $v0, $0, 4          # system call (4) to print string
    la $a0, newline            # put string memory address in register $a0
    syscall              # NEWLINE
    
    addi $v0, $0, 4          # system call (4) to print string
    la $a0, ensure_input         # put string memory address in register $a0
    syscall                   # print string
    
    addi $v0, $0, 4          # system call (4) to print string
    la $a0, newline            # put string memory address in register $a0
    syscall              # NEWLINE
 
prompt_loop:

    slt $t1, $t0, $s1        # if( i < size ) $t1 = 1 (true), else $t1 = 0 (false)
    beq $t1, $0, end_prompt_loop     
    sll $t2, $t0, 2            # multiply i * 4 (4-byte word offset)
                
      addi $v0, $0, 4          # print "A["
      la $a0, array_prompt             
      syscall 
                          
      addi $v0, $0, 1            # print    value of i (in base-10)
      add $a0, $0, $t0           
      syscall   
                      
      addi $v0, $0, 4          # print "] = "
      la $a0, close_bracket_equal       
      syscall                   
      
      addi $v0, $0, 5            # get input from user and store in $v0
      syscall             
    
    add $t3, $s0, $t2        # A[i] = address of A + ( i * 4 )
    sw $v0, 0($t3)            # A[i] = $v0
    addi $t0, $t0, 1        # i = i + 1
        
    j prompt_loop            # jump to beginning of loop

end_prompt_loop:

    addi $v0, $0, 4          # system call (4) to print string
    la $a0, newline            # put string memory address in register $a0
    syscall              # NEWLINE
    
    addi $v0, $0, 4          # print "Enter search value: "
      la $a0, search_prompt             
      syscall
      
      addi $v0, $0, 5            # system call (5) to get integer from user and store in register $v0
    syscall                # get user input for variable "v"
    add $s2, $0, $v0        # copy to register $s2, b/c we'll reuse $v0
    
      addi $v0, $0, 4          # system call (4) to print string
    la $a0, newline            # put string memory address in register $a0
    syscall              # NEWLINE
        
binarySearch:
    
    li $t1, 0             # left = 0
    li $t2, 0             # middle = 0
    subu $t3, $s1, 1         # right = size - 1
    li $t4, -1             # elementindex = -1
    
whileLoop:

    bgt $t1, $t3, end         # end while when left > right
    
    subu $t2, $t3, $t1         # Middle = right - left
    srl $t2, $t2, 1         # Middle = (right - left) / 2
    
    add $t2, $t2, $t1         # Middle = left + (right - left) / 2
    
    sll $t6, $t2, 2            # index for A[Middle]
        addu $s0, $0, $t6           # point to middle
    lw  $a0, 0($s0)             # a0 = A[middle]
        
    bne $a0, $s2, notEqual         # if ( A[middle] == v) { IF NOT SKIP TO notEqual
        
    add $t4, $0, $t2         # element_index = middle
    j end                 # BREAK
    
    notEqual:
    
        slt $t5, $a0, $s2     # is A[middle] < v . IF YES, t5 = TRUE
        beqz $t5, notLess
        
        addi $t1, $t2, 1     # left = middle + 1
        j pastnotLess

    notLess:   
        subi $t3, $t2, 1     # right = middle - 1
        
    pastnotLess:
    
        j whileLoop
    
                    # END OF WHILE
    
end:
    
    bge $t4, $0, notIndex
        
    addi $v0, $0, 1          # system call (1) to print Int
    la $a0, ($s2)             # put string memory address in register $a0
    syscall               # search value
            
    addi $v0, $0, 4          # system call (4) to print string
    la $a0, not_found         # put string memory address in register $a0 - printf( "%d not in sorted A\n", v );
    syscall              # not in sorted A
        
    addi $v0, $0, 4          # system call (4) to print string
    la $a0, newline            # put string memory address in register $a0
    syscall              # NEWLINE
        
    j exit
    
notIndex:
        
    addi $v0, $0, 1          # system call (1) to print Int
    la $a0, ($s2)            # put string memory address in register $a0
    syscall              # Element
        
    addi $v0, $0, 4          # system call (4) to print string
    la $a0, is_found         # put string memory address in register $a0
    syscall                # is found in
        
        
    addi $v0, $0, 4          # system call (4) to print string
    la $a0, sorted_array_prompt     # put string memory address in register $a0
    syscall                #Sorted A[
        
    addi $v0, $0, 1          # system call (1) to print Int
    la $a0, ($t4)             # put string memory address in register $a0
    syscall              # Element Index
          
    addi $v0, $0, 4          # system call (4) to print string
    la $a0, close_bracket        # put string memory address in register $a0
    syscall             # ]
        
    addi $v0, $0, 4          # system call (4) to print string
    la $a0, newline            # put string memory address in register $a0
    syscall              # NEWLINE

exit:               
  addi $v0, $0, 10              # system call (10) exits the progra
  syscall                       # exit the program
is zwar assembler aber binary search ;)

ok spaß beiseite...
versuch das problem selber zu lösen und ja ich weis jetzt kommt die antwort "ich weis nicht wo ich anfangen soll"
versuch das problem in sätze aufzuteilen oder es aufzumalen auf einem papier...
binär suche mit 5 elemente funktioniert genauso wie für 5mio elemente also versuch irgendwie was selber zu machen

lösungs code will keiner posten... weil du beim nächsten binary search wieder hilfe brauchst ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Array, lineare Suche, binäre Suche, Programm bleibt unerwartet stehen... Java Basics - Anfänger-Themen 6
S Java Lineare-Suche Zeitmessung Java Basics - Anfänger-Themen 5
S Java Lineare Suche Java Basics - Anfänger-Themen 1
L Einfache Lineare Suche Java Basics - Anfänger-Themen 7
P Lineare Suche im Array Java Basics - Anfänger-Themen 5
B Lineare Suche Java Basics - Anfänger-Themen 5
U Lineare Suche in einem Array Java Basics - Anfänger-Themen 3
M lineare Suche Java Basics - Anfänger-Themen 12
NoP-ay Lineare Rekurison gibAnzahl Java Basics - Anfänger-Themen 6
S Lineare listen verkettung Java Basics - Anfänger-Themen 7
V_Fynn03 Beliebiges Element in einer Liste löschen (Java)(Lineare Datenstrukturen) Java Basics - Anfänger-Themen 9
V_Fynn03 Lineare Datenstrukturen Element löschen? Java Basics - Anfänger-Themen 2
A Was könnten typische Prüfungsaufgaben zum Thema lineare, verkettete Listen sein? Java Basics - Anfänger-Themen 5
B lineare und schlichte Rekursion Java Basics - Anfänger-Themen 1
A Lineare Rekursion Java Basics - Anfänger-Themen 6
R Klassen Die lineare Datenstruktur Queue Java Basics - Anfänger-Themen 3
S Lineare Gleichung lösen Java Basics - Anfänger-Themen 1
L Lineare Listen Java Basics - Anfänger-Themen 2
S Datentypen nicht lineare STATISCHE Datenstruktur? Java Basics - Anfänger-Themen 10
B lineare Gleichung programmieren Java Basics - Anfänger-Themen 2
C Lineare Rekursion -> iterative Schleife Java Basics - Anfänger-Themen 3
B endrekursion und lineare rekursion Java Basics - Anfänger-Themen 4
T Lineare Listen: sortiertes Einfügen Java Basics - Anfänger-Themen 6
I Lineare Gleichungssysteme lösen -> Problem Java Basics - Anfänger-Themen 3
G verkettete lineare Liste Java Basics - Anfänger-Themen 2
D Lineare Kongruenz Java Basics - Anfänger-Themen 4
B Warum hat dieser einfache Algorithmus lineare Laufzeit? Java Basics - Anfänger-Themen 3
G Array - lineare Liste Java Basics - Anfänger-Themen 2
Chucky Lineare Listen Programm Verständnisproblem Java Basics - Anfänger-Themen 38
I Reflection: Suche Feld + in Unterklassen Java Basics - Anfänger-Themen 7
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
M Suche Resteasy Example Java Basics - Anfänger-Themen 24
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
M binäre Suche im Intervall Java Basics - Anfänger-Themen 6
M binäre Suche Java Basics - Anfänger-Themen 4
H Suche Java3D 32 bit Java Basics - Anfänger-Themen 20
F Suche nach betreuender Person für eine Jahresarbeit der 12. Klasse. Java Basics - Anfänger-Themen 6
K Warum ist die binäre Suche bei der verketteten Liste nicht so effektiv? Java Basics - Anfänger-Themen 3
H Suche jemanden für kleine Uni-Abgabe/ mit Vergütung Java Basics - Anfänger-Themen 1
RudiRüssel Binäre Suche, unsortiert, lokales Maximum Java Basics - Anfänger-Themen 15
Y Suche von Studenten anhand Ihrer Eigenschaften. Java Basics - Anfänger-Themen 1
F Auf der Suche in π Java Basics - Anfänger-Themen 13
C Suche Nachhilfe in Java Java Basics - Anfänger-Themen 5
T Binärbaum-Suche Implementation Java Basics - Anfänger-Themen 6
A suche dringend Hilfe!! Java Basics - Anfänger-Themen 6
N Operatoren Schreibtischtest der Reihen-Suche nach Aufschluss in die Basics Java Basics - Anfänger-Themen 1
B Suche free SVN Hosting Java Basics - Anfänger-Themen 12
S Binäre-Suche Algorithmus Java Basics - Anfänger-Themen 1
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
E Die richtige Suche in der API Java Basics - Anfänger-Themen 1
S suche nach varible POSITION ... fuer das pixel-maennchen Java Basics - Anfänger-Themen 4
E Weg-Suche-Problem rekursiv Java Basics - Anfänger-Themen 12
B Suche Programme mit Fehlern Java Basics - Anfänger-Themen 9
jaleda100 Component für Suche Java Basics - Anfänger-Themen 4
L Suche ein sampel Projekt Java Basics - Anfänger-Themen 2
P Suche Aufwandsgenerator (o-notation) Java Basics - Anfänger-Themen 1
S Suche aktuelles 2D Grafik Tutorial Java Basics - Anfänger-Themen 5
M Suche hilfe bei Array Java Basics - Anfänger-Themen 4
L Binäre Suche mit Comparator Java Basics - Anfänger-Themen 5
J Methoden Suche effiziente Implementierung für eine Methode Java Basics - Anfänger-Themen 3
D Ich suche nach einer Möglickeit den Webseiten Inhalt per Java zu analysieren Automatisch Java Basics - Anfänger-Themen 3
B String: suche nach Wörter und in List<String> speichern Java Basics - Anfänger-Themen 3
D Erste Schritte Suche Quelltext Java Basics - Anfänger-Themen 7
M Rekursion Minimums Suche Java Basics - Anfänger-Themen 12
J Suche Hilfestellung Java Basics - Anfänger-Themen 10
G Erste Schritte Suche Java Programmierer für kleines Projekt Java Basics - Anfänger-Themen 1
J Suche die Emailadresse Java Basics - Anfänger-Themen 6
H Suche in Text und Markierung Java Basics - Anfänger-Themen 14
H Suche in einem Text Java Basics - Anfänger-Themen 17
H Erste Schritte Binäre Suche Java Basics - Anfänger-Themen 37
J Suche simples Beispiel für die EOFException Java Basics - Anfänger-Themen 1
H Rekursion Binäre Suche Java Basics - Anfänger-Themen 2
L Binäre Suche Java Basics - Anfänger-Themen 2
L Linerae Suche in einem sortierten Array Java Basics - Anfänger-Themen 2
I Innerhalb einer Methode suchen und hinzufügen. Neues Objekt in Suche dann? Java Basics - Anfänger-Themen 8
B Binäre Suche - Junit Test Java Basics - Anfänger-Themen 6
J Binäre Suche eines Array Java Basics - Anfänger-Themen 5
M Methoden Binäre Suche als rekursive Variante Java Basics - Anfänger-Themen 5
D Suche nach der Anzahl von Zonen zwischen zwei Punkten Java Basics - Anfänger-Themen 2
M Benutzerdefinierte Suche in einem String - outofbounds Java Basics - Anfänger-Themen 7
X Best Practice SUCHE ein gutes Javabuch! (kein Anfang von 0) Java Basics - Anfänger-Themen 5
B Binäre Suche in einem String Array Java Basics - Anfänger-Themen 10
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
M Rekursive Suche in einem Feld Java Basics - Anfänger-Themen 11
S Suche richtigen Typ für Variabel mit den Werten (neu, gebraucht, beschädigt) Java Basics - Anfänger-Themen 7
M Best Practice Programmierstil Graphen-A*-Suche Java Basics - Anfänger-Themen 5
M Suche Hilfe bei sehr kleinen Quelltexten Java Basics - Anfänger-Themen 2
E Suche Klasse die eine Bedinung prüft und einen von zwei Auswahlwerten zurückgibt... Java Basics - Anfänger-Themen 6
D Erste Schritte suche hilfe für db-anbindung Java Basics - Anfänger-Themen 36
S Java Servlet - Suche Java Basics - Anfänger-Themen 1
P Hashing suche Java Basics - Anfänger-Themen 4
K Suche Hilfe bei einfachem Java Code ( Debuggen ) Java Basics - Anfänger-Themen 1
J Variablen Auf der suche nach einem Befehl Java Basics - Anfänger-Themen 2
M Binäre Suche Fehler überall =( Java Basics - Anfänger-Themen 2
Farbenfroh Suche Übungsaufgaben: BinaryTree, Stack Java Basics - Anfänger-Themen 0
D Binärbaum Suche Java Basics - Anfänger-Themen 5
U Vererbung Suche Hilfe anhand eines Bsp. Java Basics - Anfänger-Themen 1
L Suche Programmier-Projekt mit Anleitung Java Basics - Anfänger-Themen 3
A Suche Programmierer für Android App Java Basics - Anfänger-Themen 1
H Suche Vergleichstabelle für die Klassen String und StringBuilder Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben