# SelectionSort # BinarySearch # Eingabe: Vorname, Name # Jeden aus Vorname und Name bestehenden Datensatz fassen wir # als Liste mit je zwei Komponenten auf. # Die Komponenten des arrays a bestehen aus diesen Datensätzen. # Das array a wird alphabetisch jeweils nach dem Namen, also nach # der zweiten Komponente eines jeden Datensatzes, sortiert. # Erzeugen des arrays [[' ' , ' ']] a = [[' ' for i in range(2)] for i in range(1)] condition = True i = 0 def selectionsort(): j = 0 while j <= len(a)-2: i = j + 1 min = a[j] while i < len(a): if a[i][1] < min[1]: min = a[i] a[i] = a[j] a[j] = min i = i + 1 j = j + 1 def binarysearch(array, value, begin, end): global index if begin > end: return False middle = (begin + end) // 2 if array[middle][1] == value: index = middle elif array[middle][1] < value: return binarysearch(array, value, middle + 1, end) else: return binarysearch(array, value, begin, middle - 1) # Eingabe der zu sortierenden Datensätze while condition: vorname = input('vorname: ') name = input('name: ') if i == 0: a[i][0] = vorname a[i][1] = name else: a.append([vorname,name]) ans = input('weiter? ') condition = ans == 'y' i +=1 print() print('Quelliste:') print(a) print() for i in range(len(a)): print(a[i][0],' ',a[i][1]) print() # Sortieren der Quelliste selectionsort() # Ausgabe der sortierten Liste print('sortierte Liste:') print(a) print() for i in range(len(a)): print(a[i][0],' ',a[i][1]) # Suche print() value = input('gesuchter Name: ') if binarysearch(a, value, 0, len(a)-1) == False: print(value,'wurde nicht gefunden') else: print(value,'wurde gefunden') print('an der Stelle', index) print('a[',index,'] = ',a[index])