算法:2选择排序
2021-06-22 14:04
标签:find class 时间 选择 select end div 循环 顺序 选择排序 时间:O(n^2) 实现功能:将数组元素按从小到大的顺序排列。 思路:先找出数组中的最小元素,将最小的元素复制给新的数组。 使用python实现。(python中列表与数组相似) 运行结果: 解析: 算法:2选择排序 标签:find class 时间 选择 select end div 循环 顺序 原文地址:https://www.cnblogs.com/doitjust/p/9678208.html 1 //找出列表中最小的元素
2 def findSmallest(arr):
3 smallest = arr[0] //存储最小的值
4 smallest_index = 0 //存储最小的索引
5 for i in range(1,len(arr)):
6 if arr[i]smallest:
7 smallest = arr[i]
8 smallest_index = i
9 return smallest_index
10
11
12 //选择排序
13 def selectionSort(arr):
14 newArr = []
15 for i in range(len(arr)):
16 newArr.append(arr.pop(findSmallest(arr)))
17 return newArr
18
19 print(selectionSort([1,5,9,7,5,3,45,15,26,565,156,25,69226,526]))
[1, 3, 5, 5, 7, 9, 15, 25, 26, 45, 156, 526, 565, 69226]
findSmallest()方法返回的是原列表中最小的元素的索引
第5行:
循环从1开始,因为smallest,smallext_index默认取值为原列表的第0个元素,不必从0开始比较.
第16行
arr.pop(i):表示将arr数组中的第i个元素删除,并返回
newArr.append(item):将元素item追加到newArr列表后面
上一篇:Spring boot 搭建
下一篇:C++之模板