master > master: code go, py - Annahme in SprungSuche nur eine Idealisierung, keine Notwendigkeit

This commit is contained in:
RD 2021-11-02 13:18:11 +01:00
parent 6d97bcc6db
commit e9f83317d8
4 changed files with 9 additions and 5 deletions

View File

@ -75,7 +75,7 @@ parts:
- command: 'algorithm-search-binary'
description: 'Seminarblatt Woche 3, Aufgabe 1'
inputs: &ref_inputs_sem3_1
L: [7, 12, 29, 33, 40, 44, 45, 55, 64, 68, 78, 81, 84, 89, 95, 117, 120, 124, 133, 148, 152, 157, 174, 209, 219, 226, 237, 241, 273, 277, 282]
L: [7, 12, 29, 33, 40, 44, 45, 55, 64, 68, 78, 81, 84, 89, 95, 117, 120, 124, 133, 148, 152, 157, 174, 209, 219, 226, 226, 237, 241, 273, 277, 282]
x: 101
- command: 'algorithm-search-jump'
description: 'Seminarblatt Woche 3, Aufgabe 1'

View File

@ -27,7 +27,8 @@ Inputs: L = Liste von Zahlen, x = Zahl, m = lineare Sprunggröße.
Annahmen:
- L sei aufsteigend sortiert.
- L enthält keine Duplikate.
- Idealerweise: L enthält keine Duplikate.
- Idealerweise: Abstände zw. Elementen nicht uniform.
Outputs: Position von x in L, sonst 1 wenn x nicht in L.
*/

View File

@ -26,6 +26,7 @@ func preChecks(L []int, _ ...interface{}) error {
if !utils.IsSortedListInt(L) {
return fmt.Errorf("Ungültiger Input: L muss aufsteigend sortiert sein!")
}
// NOTE: nicht prüfen, ob Duplikate existieren. Das ist nur eine erwünschte aber keine notwendige Annahme.
return nil
}

View File

@ -24,7 +24,7 @@ from src.algorithms.methods import *;
def preChecks(L: List[int], **_):
assert L == sorted(L), 'Ungültiger Input: L muss aufsteigend sortiert sein!';
assert L == sorted(list(set(L))), 'Ungültiger Input: L darf keine Duplikate enthalten!';
## NOTE: nicht prüfen, ob Duplikate existieren. Das ist nur eine erwünschte aber keine notwendige Annahme.
return;
def postChecks(L: List[int], x: int, index: int, **_):
@ -46,7 +46,8 @@ def JumpSearchLinear(L: List[int], x: int, m: int) -> int:
Annahmen:
- L sei aufsteigend sortiert.
- L enthält keine Duplikate.
- Idealerweise: L enthält keine Duplikate.
- Idealerweise: Abstände zw. Elementen nicht uniform.
Outputs: Position von x in L, sonst 1 wenn x nicht in L.
'''
@ -77,7 +78,8 @@ def JumpSearchExponentiell(L: List[int], x: int) -> int:
Annahmen:
- L sei aufsteigend sortiert.
- L enthält keine Duplikate.
- Idealerweise: L enthält keine Duplikate.
- Idealerweise: Abstände zw. Elementen nicht uniform.
Outputs: Position von x in L, sonst 1 wenn x nicht in L.
'''