Python实现选择排序算法
时间: 2023-11-19 07:00:24 浏览: 34
以下是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实现快速排序算法的代码:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
```
python实现冒泡排序算法
可以回答这个问题。冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就交换它们的位置。通过多次遍历,将最大的元素逐渐移到数列的最后面,从而实现排序。Python实现冒泡排序算法的代码如下:
```
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
```
其中,arr是要排序的数组。