Source code for kyu_6.sort_the_odd.solution

#  Created by Egor Kostan.
#  GitHub: https://github.com/ikostan
#  LinkedIn: https://www.linkedin.com/in/egor-kostan/


[docs]def sort_array(source_array: list) -> list: """ Sorting ascending odd numbers but even numbers must be on their places. Zero isn't an odd number and you don't need to move it. If you have an empty array, ou need to return it. :param source_array: :return: """ output: list = source_array[:] is_sorted = False while not is_sorted: is_sorted = True for i_o, o in enumerate(output): if output[i_o] != 0 and output[i_o] % 2 != 0: for i_b, b in enumerate(output): if output[i_b] != 0 and output[i_b] % 2 != 0 and output[i_o] > output[i_b] and i_o < i_b: is_sorted = False output[i_o], output[i_b] = b, o break return output