#!/usr/bim/python3
# ====================================================================
# shift a given character to the end of a random array
# of ASCII characters
# ====================================================================
import random
import string
import time
n = 20000
# --------------------------------------------------------------------
# shift a character in an array (python list)
# --------------------------------------------------------------------
def shift_to_end(source_arr,shift_char):
t = []
c = 0
for a in source_arr:
if a != shift_char:
t.append(a)
else:
c += 1
t.extend(c*[shift_char])
return (c,t)
# --------------------------------------------------------------------
# ---- main
# --------------------------------------------------------------------
shift_char = 'a'
array = [random.choice(string.ascii_letters) for _ in range(n)]
start = time.time()
scount,sarray = shift_to_end(array,shift_char)
end = time.time()
print()
print(f'shift char ="{shift_char}"')
print(f'initial arr len = {len(array)}')
print(f'final arr len = {len(array)}')
print(f'elapsed time = {end-start} sec')