使用python实现简单选择排序算法
时间: 2023-06-02 22:06:21 浏览: 78
很高兴回答您的问题。简单选择排序是一种基本的排序算法,可以用 Python 编写实现。
以下是简单选择排序的 Python 代码:
def selection_sort(arr):
n = len(arr)
for i in range(n):
min_idx = i
for j in range(i+1, n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
arr = [64, 25, 12, 22, 11]
sorted_arr = selection_sort(arr)
print("排序后的数组:")
for i in range(len(sorted_arr)):
print("%d" % sorted_arr[i]),
希望能帮助到您,谢谢!
相关问题
Python实现选择排序算法
以下是Python实现选择排序算法的代码:
```python
def selection_sort(arr):
n = len(arr)
for i in range(n):
min_idx = i
for j in range(i+1, n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
```
解释:
1. 首先,我们迭代数组中的每个元素,外部循环的变量i从0到n-1。
2. 在内部循环中,我们找到未排序部分中最小元素的索引。内部循环的变量j从i+1到n。
3. 如果找到的最小元素索引不是i,则交换i和最小元素。
4. 重复这个过程,直到整个数组都被排序。
示例:
```python
arr = [64, 25, 12, 22, 11]
print(selection_sort(arr)) # [11, 12, 22, 25, 64]
```
时间复杂度:O(n^2)。
实现简单选择排序算法
以下是实现简单选择排序算法的Python代码:
```python
def selection_sort(arr):
n = len(arr)
for i in range(n):
min_idx = i
for j in range(i+1, n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
```
这段代码定义了一个名为`selection_sort`的函数,它接受一个列表作为输入,并返回一个已排序的列表。函数使用两个嵌套的循环来实现选择排序算法。外部循环遍历整个列表,内部循环在未排序的部分中查找最小值,并将其与当前位置交换。这样,每次迭代后,列表的前面部分都是已排序的,而后面部分是未排序的。