冒泡排序
规则:
每一次遍历比较列表中元素时 都是从左向右两两进行比较
每一次遍历比较之后 都会的对应的最值,下一次遍历的时候最值不用在参与比较
每一次遍历之后都会少一个最值元素参与排序比较
想完成排序就需要经历 len(列表长度)-1 次遍历; 遍历列表就需要 循环;
需要使用双层循环来完成:
第几次遍历 + 此次遍历比较的次数 = 列表的长度
外层循环控制的是什么:到底经历了多少次遍历完成了排序效果
内层循环控制的是什么:遍历列表,取元素进行比较
1 list1 = [12,37,39,51,28,44,15] 2 3 for outter in range(1,len(list1)): 4 for inner in range(0,len(list1)-outter): 5 if list1[inner] > list1[inner+1]: 6 list1[inner],list1[inner+1] = list1[inner+1],list1[inner] 7 print(list1)
选择排序
规则:
以升序为例 从小到大,每一次遍历都找对应的最小值 然后与指定位置的元素进行交换。
第一次遍历:假设第一个位置的元素是最小的,与之后的每一个元素进行比较 找到最小的 与第一个位置的元素进行交换。
第二次遍历:假设第二个位置的元素是最小的,与之后的每一个元素进行比较 找到最小的 与第二个位置的元素进行交换。
................
遍历列表的次数:len(list0) - 1 次。第几次遍历,遍历的起始脚标就是几。
需要使用双层循环来完成:
第几次遍历 + 比较的次数 = 列表的长度
外层遍历控制的是什么:第几次遍历,就是起始脚标的位置
内层遍历控制的是什么:此次遍历比较的次数
插入排序