39 lines
781 B
Python
39 lines
781 B
Python
import os
|
|
import sys
|
|
|
|
|
|
def main() -> int:
|
|
in_ints: list[int] = []
|
|
with open(sys.argv[1]) as infile:
|
|
for line in infile:
|
|
in_ints.append(int(line.strip()))
|
|
|
|
insertion_sort(in_ints)
|
|
|
|
for i in in_ints:
|
|
print(i)
|
|
|
|
return 0
|
|
|
|
|
|
def insertion_sort(in_ints: list[int]) -> None:
|
|
for i in range(len(in_ints) - 1):
|
|
j = i + 1
|
|
key = in_ints[j]
|
|
|
|
print(f"{in_ints} (save {key} from {j})", file=sys.stderr)
|
|
|
|
while i > -1 and in_ints[i] > key:
|
|
in_ints[i + 1] = in_ints[i]
|
|
|
|
print(f"{in_ints} (j={j} i={i})", file=sys.stderr)
|
|
|
|
i -= 1
|
|
|
|
in_ints[i + 1] = key
|
|
print(f"{in_ints} (insert {key} at {i+1})", file=sys.stderr)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|