Given an array of integers, sort the elements in the array in ascending order. The selection sort algorithm should be used to solve this problem.

Examples

  • {1} is sorted to {1}
  • {1, 2, 3} is sorted to {1, 2, 3}
  • {3, 2, 1} is sorted to {1, 2, 3}
  • {4, 2, -3, 6, 1} is sorted to {-3, 1, 2, 4, 6}

Corner Cases

  • What if the given array is null? In this case, we do not need to do anything.
  • What if the given array is of length zero? In this case, we do not need to do anything.

Time: O(N^2)

Space: O(N)

 1 class Solution(object):
 2   def solve(self, array):
 3     """
 4     input: int[] array
 5     return: int[]
 6     """
 7     # write your solution here
 8     if array is None or len(array) <= 1:
 9       return array
10     for i in range(len(array) - 1):
11       min_index = i
12       for j in range(i + 1, len(array)):
13         if array[j] < array[min_index]:
14           min_index = j
15       array[i], array[min_index] = array[min_index], array[i]
16     return array
02-11 19:08