冒泡、插入、选择排序Python3代码实现
仅供参考
冒泡排序
class BS(object):
def bubble_sort(self, list_num):
for i in range(len(list_num)): # 控制次数
for j in range(len(list_num)-i-1): # 一次遍历
if list_num[j] > list_num[j+1]:
list_num[j], list_num[j+1] = list_num[j+1], list_num[j]
print('%s' % i, list_num) # 查看每次遍历的结果
return list_num
instance = BS()
print(instance.bubble_sort([4, 3, 6, 4, 7, 9, 1]))
插入排序
class IS(object):
def insertion_sort(self, list_num):
for i in range(1, len(list_num)):
j = i - 1
key = list_num[i]
while j >= 0:
if list_num[j] > key:
list_num[j+1] = list_num[j]
list_num[j] = key
j -= 1
# print('{}'.format(i), list_num)
return list_num
print(IS().insertion_sort([3, 5, 1, 7, 9, 2]))
选择排序
class SS(object):
"""
一次遍历里面找到最小数,与当前i位置数交换,在一次遍历后,重置min_index大小为i
"""
def selection_sort(self, list_num):
for i in range(len(list_num)):
min_index = i
for j in range(i+1, len(list_num)):
if list_num[min_index] > list_num[j]:
min_index = j
list_num[i], list_num[min_index] = list_num[min_index], list_num[i]
return list_num
print(SS().selection_sort([3, 5, 1, 7, 9, 2]))