Python实例方法中默认参数是python实例变量和类变量的区别
下载地址 https://share.weiyun.com/OvviwGnZ
资料目录 Python练习集100题 100道Python面试题 Python100经典练习题 Python经典题目100道题 Python题库(已收录100道真题) Python100例视频讲解课程 菜鸟教程Python教程100例 130道python练习题,涵盖基础内容的方方面面 Python考试题复习知识点试卷试题 PYTHON测试题和答案 python第一阶段考试题 Python经典面试题和答案解析 python期末考试复习试卷 python习题集大全(附答案解析) 老男孩Python全栈7期练习题(面试真题模拟) 尚观python第一阶段考试(面试真题模拟) 《Python程序设计基础与应用》习题答案 《Python快速编程入门》——课后题答案 Python编程基础张健 , 张良均课后习题及答案 Python程序设计基础及实践(慕课版)郭炜习题答案 Python程序设计基础习题答案与分析 python基础试题(含答案)
举例 插入排序 插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 咱们举一个例子,你就能明白插入排序的精髓所在 lst = [1, 2, 6, 7, 5] lst是一个待排序的列表,你仔细观察不难发现,这个列表里的前4个数据已经是有序的了,现在,只需要把最后一个元素5插入到一个合适的位置就可以了。 从7开始向左遍历,比5大的数向右移动,当遇到一个小于等于5的数就停下来,这个位置就是5应该在的位置。当7向右移动时,占据了5的位置,因此,程序里需要一个变量把5保存下来,还需要一个变量把向左遍历时的索引记录下来,最后这个索引就是5应该在的位置。 def insert(lst, index): """ 列表lst从索引0到索引index-1 都是有序的 函数将索引index位置上的元素插入到前面的一个合适的位置 :param lst: :param index: :return: """ if lst[index-1] < lst[index]: return
tmp = lst[index] tmp_index = index while tmp_index > 0 and lst[tmp_index-1] > tmp: lst[tmp_index] = lst[tmp_index-1] tmp_index -= 1 lst[tmp_index] = tmp
if __name__ == '__main__': lst = [1, 2, 6, 7, 5] insert(lst, 4) print(lst) 函数默认列表lst从0到index-1都是有序的,现在只需要将索引index位置上的数据插入到合适的位置就可以了。 你可能已经产生了疑惑,咱们是要排序啊,你这函数默认前面index-1个数据都是有序的,这不合理啊,前面index-1个数据如果是无序的,你怎么办呢? 看下面的代码,你就全明白了 def insert(lst, index): """ 列表lst从索引0到索引index-1 都是有序的 函数将索引index位置上的元素插入到前面的一个合适的位置 :param lst: :param index: :return: """ if lst[index-1] < lst[index]: return
tmp = lst[index] tmp_index = index while tmp_index > 0 and lst[tmp_index-1] > tmp: lst[tmp_index] = lst[tmp_index-1] tmp_index -= 1 lst[tmp_index] = tmp
def insert_sort(lst): for i in range(1, len(lst)): insert(lst, i)
if __name__ == '__main__': lst = [1, 6, 2, 7, 5] insert_sort(lst) print(lst) 第1个元素单独看做一个数列,它本身就是有序的,那么只需要执行insert(lst, 1),就可以保证前两个数据变成有序的,然后执行insert(lst, 2),此时,从索引0到索引1是有需的,只需要将索引为2的数据插入到合适的位置就可以了。
|