solution_210a.py

#!/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')