选择排序–Python方式实现
"""
dateTime: 2021-05-01 16:40
sort: selection
time: O(n²)
space: O(1)
"""
def selection_sort(array):
"""
遍历索引找到最小值的索引,
将最小值与第0位交换,
下一次从第1位开始找之后最小的索引再次交换,
以此类推
:param array:
:return: array
"""
for i in range(len(array)):
min_index = i
for j in range(i + 1, len(array)):
if array[j] < array[min_index]:
min_index = j
print("min_index: {}".format(min_index))
array = swap(array, i, min_index)
return array
def swap(array, index_one, index_two):
"""
交换函数,交换数组中两个元素的位置
:param array:
:param index_one:
:param index_two:
:return: array
"""
temp = array[index_one]
array[index_one] = array[index_two]
array[index_two] = temp
return array
def main():
array = [1, 6, 3, 4, 5, 9, 8, 2, 7]
print(selection_sort(array))
if __name__ == "__main__":
main()