排序算法

96 阅读1分钟

一、比较排序

1、选择排序

class Solution:
	def select_sort(self, dict_input):	
		#1、第一层循环,循环元组中的每个元素
		for x in range(len(dict_input)):
			min_index = x
			#2、第二层循环,循环元组中每个元素加1
			for y in range(x+1,len(dict_input)):
				if dict_input[min_index] > dict_input[y]:
					min_index = y
			temp = dict_input[x]
			dict_input[x] = dict_input[min_index]
			dict_input[min_index] = temp
		return dict_input
	
if __name__ == '__main__':
	ssort = Solution()
	dict_out = ssort.select_sort([1,9,6,8,77,8,44])
	print(dict_out)

2、插入算法

class Solution:
	def insert_sort(self, dict_input):	
		#1、第一层循环,循环元组中的每个元素
		for x in range(len(dict_input)):
			#2、第二层循环,按个前移给小弟挪位置
			if x == 0:
				continue
			if x == 1:
				list_f = [0]
			else:
				list_f = range(x-1, -1, -1)
					                  
			con_val = dict_input[x]
			min_index = x
			for y in list_f:
				if dict_input[y] > con_val:
					dict_input[y+1] = dict_input[y]
					min_index = y						
			dict_input[min_index] = con_val
	
		return dict_input
	
if __name__ == '__main__':
	isort = Solution()
	dict_out = isort.insert_sort([3,2,0,5,1,4,1])
	print(dict_out)

3、归并排序-合并有序列表

1652670093(1).jpg