Skip to content

Instantly share code, notes, and snippets.

@timkofu
Created July 13, 2021 13:40
Show Gist options
  • Save timkofu/f974c30ccd8804597ff2722abdad820d to your computer and use it in GitHub Desktop.
Save timkofu/f974c30ccd8804597ff2722abdad820d to your computer and use it in GitHub Desktop.
# Date: 13/07/2021
# Author: @timkofu
# Description: GitHib Copilot test drive
from typing import Callable
import big_o # https://pypi.org/project/big-O/
def sorter(sorter: Callable[[list[int]], list[int]], range: int) -> str:
return str(
big_o.big_o( # type: ignore
sorter, lambda range: big_o.datagen.integers(range, 0, 100000), n_repeats=100 # type: ignore
)[0]
)
# Quicksort algorithm
def quicksort(array: list) -> list:
if len(array) < 2:
return array
pivot = array[0]
less = [i for i in array[1:] if i <= pivot]
greater = [i for i in array[1:] if i > pivot]
return quicksort(less) + [pivot] + quicksort(greater)
def speed_test() -> None:
range: int = 100
print(f"Inbuilt sorted() function: {sorter(sorted, range)}")
print(f"GitHub Copilot generated Quicksort algorithm: {sorter(quicksort, range)}")
if __name__ == "__main__":
speed_test()
#### RESULTS ###
# Inbuilt sorted() function: Linearithmic: time = -0.013 + 1.2E-06*n*log(n) (sec)
# GitHub Copilot generated Quicksort algorithm: Polynomial: time = -9.6 * x^1.1 (sec)
################
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment