From e9f83317d84af22f81cff3619dbbbdb2f9ea4667 Mon Sep 17 00:00:00 2001 From: raj_mathe Date: Tue, 2 Nov 2021 13:18:11 +0100 Subject: [PATCH] master > master: code go, py - Annahme in SprungSuche nur eine Idealisierung, keine Notwendigkeit --- code/config.yml | 2 +- code/golang/internal/algorithms/search/jump/jump.go | 3 ++- code/golang/internal/algorithms/search/jump/jump_fancy.go | 1 + code/python/src/algorithms/search/jump.py | 8 +++++--- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/code/config.yml b/code/config.yml index b3e7ab6..7af97e9 100644 --- a/code/config.yml +++ b/code/config.yml @@ -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' diff --git a/code/golang/internal/algorithms/search/jump/jump.go b/code/golang/internal/algorithms/search/jump/jump.go index 289f554..bb16139 100644 --- a/code/golang/internal/algorithms/search/jump/jump.go +++ b/code/golang/internal/algorithms/search/jump/jump.go @@ -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. */ diff --git a/code/golang/internal/algorithms/search/jump/jump_fancy.go b/code/golang/internal/algorithms/search/jump/jump_fancy.go index fc2480c..4b6ccf4 100644 --- a/code/golang/internal/algorithms/search/jump/jump_fancy.go +++ b/code/golang/internal/algorithms/search/jump/jump_fancy.go @@ -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 } diff --git a/code/python/src/algorithms/search/jump.py b/code/python/src/algorithms/search/jump.py index e1ef096..37b7b47 100644 --- a/code/python/src/algorithms/search/jump.py +++ b/code/python/src/algorithms/search/jump.py @@ -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. '''