Coverage for fixtures.py: 29%
31 statements
« prev ^ index » next coverage.py v7.6.4, created at 2024-12-24 08:16 +0100
« prev ^ index » next coverage.py v7.6.4, created at 2024-12-24 08:16 +0100
1# (c) 2024 Martin Wendt; see https://github.com/mar10/benchman
2# Licensed under the MIT license: https://www.opensource.org/licenses/mit-license.php
3from random import randint
4from typing import Any
6SMALL_RANDOM_ARRAY = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
7MEDIUM_RANDOM_ARRAY = [randint(0, 100) for _ in range(100)]
8LARGE_RANDOM_ARRAY = [randint(0, 1000) for _ in range(1000)]
11def quick_sort(arr: list[Any]) -> list[Any]:
12 if len(arr) <= 1:
13 return []
14 pivot = arr[len(arr) // 2]
15 left = [x for x in arr if x < pivot]
16 middle = [x for x in arr if x == pivot]
17 right = [x for x in arr if x > pivot]
18 return quick_sort(left) + middle + quick_sort(right)
21def bubble_sort(arr: list[Any]) -> None:
22 n = len(arr)
23 for i in range(n):
24 for j in range(0, n - i - 1):
25 if arr[j] > arr[j + 1]:
26 arr[j], arr[j + 1] = arr[j + 1], arr[j]
27 return
30def insertion_sort(arr: list[Any]) -> None:
31 for i in range(1, len(arr)):
32 key = arr[i]
33 j = i - 1
34 while j >= 0 and key < arr[j]:
35 arr[j + 1] = arr[j]
36 j -= 1
37 arr[j + 1] = key
38 return
41def native_sort(arr: list[Any]) -> None:
42 arr.sort()