选择排序python代码
选择排序Python代码
选择排序是一种简单的排序算法,它的基本思想是每次从待排序的元素中选择最小(或最大)的一个元素,放到已排好序的元素序列末尾,直到所有元素都排好序为止。下面我们来看一下如何用Python实现选择排序。
1. 算法分析
python获取数组长度选择排序算法的时间复杂度为O(n^2),空间复杂度为O(1)。虽然时间复杂度比较高,但是它实现简单,且不需要额外的空间。
2. 代码实现
下面是用Python实现选择排序的代码:
```python
def selection_sort(arr):
    n = len(arr)
    for i in range(n):
        min_index = i
        for j in range(i+1, n):
            if arr[j] < arr[min_index]:
                min_index = j
        arr[i], arr[min_index] = arr[min_index], arr[i]
    return arr
```
3. 代码解释
首先定义一个函数selection_sort,这个函数接收一个待排序的数组arr作为参数。
在函数内部,我们先获取数组arr的长度n。
然后使用两个for循环来实现选择排序。外层循环i从0到n-1遍历整个数组,内层循环j从i+1到n-1遍历剩余未排序部分。
在内层循环中,我们首先假设i处的元素是未排序部分的最小值,然后遍历剩余未排序部分,如果发现比i处元素更小的元素,就更新最小值的索引min_index。
内层循环结束后,如果min_index不等于i,则说明到了未排序部分中的最小值,将它与i处的元素交换位置。这样一轮循环结束后,数组arr的前i+1个元素已经排好序了。
最后返回排好序的数组arr。
4. 代码测试
下面是用Python测试选择排序代码的示例:
```python
arr = [64, 25, 12, 22, 11]
print("原始数组:", arr)
sorted_arr = selection_sort(arr)
print("排序后数组:", sorted_arr)
```
输出结果为:
```
原始数组: [64, 25, 12, 22, 11]
排序后数组: [11, 12, 22, 25, 64]
```
5. 总结
选择排序是一种简单但效率较低的排序算法。虽然时间复杂度为O(n^2),但是实现简单且不需要额外空间。在实际应用中,如果数据量较大或者对时间复杂度要求较高时,建议使用其他更高效的排序算法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。