开发者代码

促销活动、技术干货、问题解答、技术讨论,学习,成长,分享,共建

python数组排序

2023-12-10 08:56:18 点击:106
python数组排序
Python中的数组排序是指对一个数组(或列表)中的元素按照一定的规则进行排列的操作。数组排序是程序开发中常见的需求,Python提供了多种排序算法和函数来满足不同的需求。


1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法,它重复地遍历要排序的数组,比较相邻的两个元素,如果它们的顺序错误就交换位置。这个过程直到整个数组都变得有序。


示例代码:


```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]


arr = [64, 34, 25, 12, 22, 11, 90] bubble_sort(arr) print("排序后的数组:", arr) ```


2. 选择排序(Selection Sort) 选择排序是一种简单的排序算法,它每次从待排序的数据中选择最小(或最大)的元素,与当前位置的元素交换。


示例代码:


```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]


arr = [64, 34, 25, 12, 22, 11, 90] selection_sort(arr) print("排序后的数组:", arr) ```


3. 插入排序(Insertion Sort) 插入排序是一种简单直观的排序算法,它构建有序数组(or列表),对于未排序的元素,在已排序数据中从后向前扫描,找到相应位置并插入。


示例代码:


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


arr = [64, 34, 25, 12, 22, 11, 90] insertion_sort(arr) print("排序后的数组:", arr) ```


4. 快速排序(Quick Sort) 快速排序是一种常用且高效的排序算法,它采用分治的思想,通过选择一个pivot元素将数组分成两个子数组,然后递归地对子数组进行排序。


示例代码:


```python def quick_sort(arr): if len(arr) <= 1: return arr pivot = arr[0] left = [] right = [] for i in range(1, len(arr)): if arr[i] < pivot: left.append(arr[i]) else: right.append(arr[i]) return quick_sort(left) + [pivot] + quick_sort(right)


arr = [64, 34, 25, 12, 22, 11, 90] arr = quick_sort(arr) print("排序后的数组:", arr) ```


5. 归并排序(Merge Sort) 归并排序是一种稳定的,分治的排序算法,它将待排序的数组分成两个子数组,分别对两个子数组进行排序,然后将排序好的子数组合并成一个有序的数组。


示例代码:


```python def merge_sort(arr): if len(arr) <= 1: return arr mid = len(arr) // 2 left = merge_sort(arr[:mid]) right = merge_sort(arr[mid:]) return merge(left, right)


def merge(left, right): result = [] i = 0 j = 0 while i < len(left) and j < len(right): if left[i] <= right[j]: result.append(left[i]) i += 1 else: result.append(right[j]) j += 1 result += left[i:] result += right[j:] return result


arr = [64, 34, 25, 12, 22, 11, 90] arr = merge_sort(arr) print("排序后的数组:", arr) ```


这只是Python中几种常见的排序算法,还有其他算法可以实现数组排序。选择合适的排序算法取决于排序的规模和性能要求。在实际应用中,还可以使用Python内置的`sort()`函数或`sorted()`函数来对数组进行排序。
声明:免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:dm@cn86.cn进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。本站原创内容未经允许不得转载。
  • 7x24

    在线售后支持

  • 10

    +

    10年互联网服务经验

  • 300

    +

    全国300余家服务机构

  • 70000

    +

    与70000余家企业客户携手

logo
祥云平台主营业务:品牌型网站建设,高端型网站建设, 外贸型网站建设,营销型网站建设,网站优化, 开发类网站,企业网络营销,搜索引擎推广,微信小程序, 企业邮箱,短视频运营等。

服务热线

400-007-8608

公司:

苏州祥云平台信息技术有限公司
苏州华企立方信息技术有限公司

地址:江苏省昆山市昆太路530号祥和国际大厦15-16层

返回顶部