def swap(index1, index2, swap_list = None):
"""
遵循最内嵌套作用域,要把这个list传入
如果不是list就是普通的数值交换
"""
if isinstance(swap_list,list):
swap_list[index1],swap_list[index2] = swap_list[index2],swap_list[index1]
return swap_list
if swap_list is None:
index1, index2 = index2, index1
return index1,index2
test_list = [3,2,7,5]
def bubbling_sort(unsort_list):
"""
冒泡排序
简而言之,就是碰到一个比他小的数,就交换
"""
length = len(unsort_list)
for i in range(length):
for j in range(length):
if unsort_list[i] > unsort_list[j]:#此处决定升序还是降序
unsort_list = swap(i, j, unsort_list)
def select_sort(unsort_list):
"""
通过对比,选择一个最小的数,放入新的队列
注意点是要把列表变成一个队列,python自己的迭代会跳过第一个
"""
sorted_list = []
length = len(unsort_list)
for i in range(length):
min_number = unsort_list[0]
for element in unsort_list:
if element < min_number:
min_number = element
unsort_list.remove(min_number)
sorted_list.append(min_number)
return sorted_list
def insert_sort(unsort_list):
"""
从未排序的队列里选出一个数值,插入到已排序队列里的恰当位置
还要考虑到刚开始空列表
要注意的是如何插入值
"""
sorted_list = []
length = len(unsort_list)
for i in range(length):
number = unsort_list[i]
if sorted_list:
flag = 0
for index,element in enumerate(sorted_list):
if number < element:
sorted_list.insert(index,number)
flag = 1
break
if flag == 0:
sorted_list.append(number)
else:
sorted_list.append(number)
return sorted_list