Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for Absolute Sorting by slygoblin
def checkio(numbers_array):
result_plus = []
result_minus = []
result = []
for i in range(len(numbers_array)):
if numbers_array[i] < 0:
result_minus.append(numbers_array[i])
else:
result_plus.append(numbers_array[i])
result_minus.sort(reverse = True)
result_plus.sort()
p = 0
m = 0
for i in range(len(numbers_array)):
if p == len(result_plus):
result.append(result_minus[m])
m += 1
continue
if m == len(result_minus):
result.append(result_plus[p])
p += 1
continue
if result_plus[p] < abs(result_minus[m]):
result.append(result_plus[p])
p += 1
else:
result.append(result_minus[m])
m += 1
return result
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
def check_it(array):
if not isinstance(array, (list, tuple)):
raise TypeError("The result should be a list or tuple.")
return list(array)
assert check_it(checkio((-20, -5, 10, 15))) == [-5, 10, 15, -20], "Example" # or (-5, 10, 15, -20)
assert check_it(checkio((1, 2, 3, 0))) == [0, 1, 2, 3], "Positive numbers"
assert check_it(checkio((-1, -2, -3, 0))) == [0, -1, -2, -3], "Negative numbers"
Dec. 8, 2015