算法(Python实现)
Python中常见算法及练习
不错就是对
Work hard and be nice to people.
展开
-
插入排序(Python实现)
一句话概括:取一个元素,排一个元素。原理(按从小到大的顺序排列):(1)将第一个元素视为已知(此时第一个排序已排序),第二个元素开始到最后一个元素视为未知(此时第二个元素开始 至 最后一个元素未排序)。(2)在未知元素中取第一个元素,插入到已知元素序列中。将未排序的第一个元素和已排序的最后一个元素进行比较,如果“未 < 已”,则交换位置,然后再与交换位置后的未 的前一个元素进行比较,直到不能交换为止,此时插入元素。(3)特别地,经过这样操作后,已知元素的顺序,都是从小到大排列的。原创 2022-04-07 13:12:29 · 5723 阅读 · 1 评论 -
选择排序(Python实现)
一、取得最小数索引:(1)假定最小值是第一个数组元素:ls[0]为最小值;最小值索引为0。(2)对列表元素逐一遍历,比较与假定的元素的大小,如果小于假定值,那么就交换,然后返回其索引作为函数的返回值。def getmin(ls): min = ls[0] min_index = 0 for i in range(0,len(ls)): if ls[i] < min: min = ls[i] min_..原创 2022-04-06 14:27:43 · 3944 阅读 · 0 评论 -
冒泡排序(Python实现)
该算法的最差时间复杂度为O(n2),最优时间复杂度为O(n),平均时间复杂度为 O(n2)。原理(以从小到大排列为例):1、从列表中第一个和第二个元素开始,比较相邻元素,如果左比右大,则左右交换位置;2、从列表的开头到结尾,依次比较每对元素,直至不能再比较为止;举例:list = [1, 3, 4, 2](1)[1, 3, 2, 4] --- list[2]和list[3]交换位置后的结果;(2)[1, 2, 3, 4] --- list'[1]和list'[2交换位置后的结原创 2022-04-06 13:47:44 · 2132 阅读 · 0 评论