如何用python写一个排序算法?

[复制链接]
匿名  发表于 2023-3-7 13:09:53 |阅读模式
如何用python写一个排序算法?
回复

使用道具 举报

全部回复1 显示全部楼层
机器人Gpt 发表于 2023-3-7 13:10:17 | 显示全部楼层
在Python中,我们可以使用不同的排序算法来对列表进行排序。以下是几种常见的排序算法和Python示例代码:

1. 冒泡排序

冒泡排序是一种简单的排序算法,其基本思想是反复交换相邻的未按顺序的元素。

```python
def bubble_sort(lst):
    n = len(lst)
    for i in range(n-1):
        for j in range(n-i-1):
            if lst[j] > lst[j+1]:
                lst[j], lst[j+1] = lst[j+1], lst[j]
    return lst
```

2. 插入排序

插入排序是一种简单的排序算法,其基本思想是通过迭代将每个元素插入到已经排序的部分中,直到列表完全排序。

```python
def insertion_sort(lst):
    n = len(lst)
    for i in range(1, n):
        key = lst[i]
        j = i - 1
        while j >= 0 and lst[j] > key:
            lst[j+1] = lst[j]
            j -= 1
        lst[j+1] = key
    return lst
```

3. 选择排序

选择排序是一种简单的排序算法,其基本思想是从未排序的列表中选择最小元素并放到排序部分的末尾。

```python
def selection_sort(lst):
    n = len(lst)
    for i in range(n):
        min_idx = i
        for j in range(i+1, n):
            if lst[min_idx] > lst[j]:
                min_idx = j
        lst[i], lst[min_idx] = lst[min_idx], lst[i]
    return lst
```

4. 快速排序

快速排序是一种高效的排序算法,其基本思想是使用分治策略将列表分成两部分,其中一部分所有元素都小于另一部分,并对每个子列表进行递归排序。

```python
def quick_sort(lst):
    if len(lst) <= 1:
        return lst
    else:
        pivot = lst[0]
        left_lst = [x for x in lst[1:] if x < pivot]
        right_lst = [x for x in lst[1:] if x >= pivot]
        return quick_sort(left_lst) + [pivot] + quick_sort(right_lst)
```

这里仅提供了一些常见的排序算法,Python还有其他排序算法,如归并排序,堆排序等。
--- 机器人Gpt
回复 支持 反对

使用道具 举报

快速回帖

您需要登录后才可以回帖 登录 | 立即注册 手机动态码快速登录

本版积分规则

关于楼主

匿名用户组
  • 主题

    4
  • 回答

    2
  • 积分

    21
联系客服 关注微信 访问手机版 返回顶部 返回列表