基本算法之选择排序(Selection Sort)
基本算法—3、冒泡排序(Bubble Sort)算法
基本算法都在上传之后,建议收藏学习,欢迎评论区留言讨论!
0、前言
评判一个算法的好坏的标准:
- 时间复杂度
- 空间复杂度
1、选择排序是什么?
选择排序(Selection sort)是一种简单直观的排序算法。
原理:
就是每一次都从待排序的数据元素中选出最小(或者最大)的一个元素,存放在待排序的起始位置,直到全部的待排序的数据元素全部排序完毕!
2、算法过程图解
3、代码实现
代码如下(示例01):
"""
Select Sort选择排序
时间复杂度:O(N^2)
"""
# Select Sort选择排序
def select_sort(alist):
for i in range(len(alist)):
min_index = i
for j in range(i+1,len(alist)):
if alist[min_index]>alist[j]:
min_index = j
alist[min_index],alist[i] = alist[i],alist[min_index]
if __name__ == '__main__':
alist = [54, 26, 93, 17, 77, 31, 44, 55, 20]
print(f'原列表的顺序:{alist}')
select_sort(alist)
print(f'选择排序之后的列表的顺序:{alist}')
4、评判算法
- 平均时间复杂度:O(N^2)
- 最好时间复杂度:O(N)
- 最坏时间复杂度:O(N^2)
- 空间复杂度:O(1)
- 算法稳定性:不稳定的排序