在Python中,列表(list)是一种非常常用的数据结构,用于存储多个元素,对于列表的排序,Python提供了多种内置的排序算法,如冒泡排序、选择排序、插入排序等,这些算法可以帮助我们快速地对列表进行排序操作,下面将详细介绍这些排序算法的原理和实现。
(图片来源网络,侵删)
1、冒泡排序
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来,遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
def bubble_sort(lst): n = len(lst) for i in range(n): for j in range(0, ni1): if lst[j] > lst[j+1]: lst[j], lst[j+1] = lst[j+1], lst[j] return lst lst = [64, 34, 25, 12, 22, 11, 90] bubble_sort(lst) print("排序后的数组:") for i in range(len(lst)): print("%d" % lst[i])
2、选择排序
选择排序是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
def selection_sort(lst): for i in range(len(lst)): min_index = i for j in range(i+1, len(lst)): if lst[j] < lst[min_index]: min_index = j lst[i], lst[min_index] = lst[min_index], lst[i] return lst lst = [64, 34, 25, 12, 22, 11, 90] selection_sort(lst) print("排序后的数组:") for i in range(len(lst)): print("%d" % lst[i])
3、插入排序
插入排序的思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表,具体做法是:在从左向右扫描过程中,将当前未排序的记录按其排序码大小,插入到以前扫描过的那些已排序的记录序列的适当位置上,直至全部记录插入完成为止。
def insertion_sort(lst): for i in range(1, len(lst)): key = lst[i] j = i 1 while j >= 0 and key < lst[j]: lst[j + 1] = lst[j] j = 1 lst[j + 1] = key return lst lst = [64, 34, 25, 12, 22, 11, 90] insertion_sort(lst) print("排序后的数组:") for i in range(len(lst)): print("%d" % lst[i])
以上就是Python中常见的列表排序算法及其实现,在实际使用中,我们可以根据需求选择合适的排序算法,Python还提供了内置的排序函数sorted()和列表对象的sort()方法,可以方便地对列表进行排序。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)