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