几种基础的数学算法(二)- 排序
几种基础的数学算法(二)- 排序 说起排序算法,估计所有小伙伴参加面试都或多或少接触过。我们先来了解几个概念。 时间复杂度:算法完成排序的总的操作次数; 空间复杂度:算法在运行时所需存储空间大小; 稳定的算法:一个序列中,如果 a 原本在 b 前面,且 a = b,排序之后在新的有序序列中 a 仍然在 b 的前面。 不稳定的算法:一个序列中,如果 a 原本在b的前面,且 a = b,排序之后在新的有序序列中 a 可能会出现在 b 的后面。 排序算法对比 排序算法的文章很多,这里给大家推荐个链接: "如果天空不死"的博客 简单介绍五种排序方法 冒泡排序 无序序列 R<sub>n</sub> 中排序一趟只确认一个排序位置,最多经过 n 趟排序。 冒泡排序在一趟中每次比较两个相邻的元素,如果不符合排序要求,则交换两个元素,直到一趟排序结束。 def swap(arr: list, i: int, j: int): tmp = arr[i] arr[i] = arr[j] arr[j] = tmp # 冒泡排序 # 递增排序 def bubble_inc(arr: list): print("source array = " + str(arr)) arr_len = len(arr) if arr_len == 0: return for i in range(0, arr_len):