最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

python列表排序有哪些

来源:懂视网 责编:小采 时间:2020-11-02 18:24:22
文档

python列表排序有哪些

python列表排序有哪些:python列表排序:1、冒泡排序,是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来;2、插入排序,通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。相关学习推荐:
推荐度:
导读python列表排序有哪些:python列表排序:1、冒泡排序,是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来;2、插入排序,通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。相关学习推荐:

python列表排序:1、冒泡排序,是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来;2、插入排序,通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

相关学习推荐:python教程

1、冒泡排序

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

2c7ac844002518bcfa22b74526f1da5.png

def bubble_sort(list):
 n = len(list)
 for i in range(n - 1):
 for j in range( 0,n - 1 - i):
 if list[j] > list[j + 1]:
 list[j], list[j + 1] = list[j + 1], list[j]
 # if list[i] > list[i + 1]:
 # list[i], list[i + 1] = list[i + 1], list[i]
 print(list)
list=[2,4,6,8,1,3,5,7,9]
bubble_sort(list)
#结果:[1,2,3,4,5,6,7,8,9]

2、插入排序

插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前的扫描过程中,需要把已排序元素逐步向后挪位,为最新元素提供插入空间。

afaa6414925c912151fc16e2ea5698a.png

def insertion_sort(list):
 n = len(list)
 for i in range(1, n):
 for j in range(i, 0, -1):
 if list[j] < list[j - 1]:
 list[j], list[j - 1] = list[j - 1], list[j]
 else:
 break
 print(list)
insertion_sort([3,0,2,5,8,5,9,41,0,1,6])
#结果:[0, 0, 1, 2, 3, 5, 5, 6, 8, 9, 41]

3、选择排序

选择排序(Selection Sort )是一种简单直观的排序算法。它的工作原理如下:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小(大)元素。放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

def selection_sort(list):
 n = len(list)
 for i in range(0, n -1):
 min_index = i
 for j in range(i + 1, n):
 if list[min_index] > list[j]:
 min_index = j
 if i != min_index:
 list[min_index], list[i] = list[i], list[min_index]
 print(list)
selection_sort([5,9,6,42,9,4,66,2,3,0,1])
#结果:0, 1, 2, 3, 4, 5, 6, 9, 9, 42, 66]

总结:

import random
# 随机生成1-1000之间无序序列整数数据
def generator():
 random_data = []
 for i in range( 0, 10 ):
 random_data.append( random.randint( 1, 1000 ) )
 return random_data
# 冒泡排序
def bubble_sort(list):
 # 序列长度
 n = len( list )
 for i in range( 0, n ):
 for j in range( i , n ):
 if list[i] > list[j]:
 list[i], list[j] = list[j], list[i]
 return list
 # 选择排序
def selection_sort(list):
 n = len(list)
 for i in range(0, n -1):
 min_index = i
 for j in range(i + 1, n):
 if list[min_index] > list[j]:
 min_index = j
 if i != min_index:
 list[min_index], list[i] = list[i], list[min_index]
 return list
#插入排序
def insertion_sort(list):
 n = len(list)
 for i in range(1, n):
 for j in range(i, 0, -1):
 if list[j] < list[j - 1]:
 list[j], list[j - 1] = list[j - 1], list[j]
 else:
 break
 return list
if __name__ == "__main__":
 # 生成随机无序数据
 list = generator()
 # 打印无序数据
 print( '随机生成的无序数据:',list )
 # 冒泡排序
 sorted_data = bubble_sort( list )
 #插入排序
 insertion_data=insertion_sort(list)
 #选择排序
 selection_data=selection_sort( list )
 # 打印排序结果
 print( '冒泡排序:',sorted_data )
 print( '插入排序:', insertion_data )
 print( '选择排序:', selection_data )
'''
结果:
随机生成的无序数据: [300, 517, 591, 209, 204, 789, 417, 739, 803, 393]
冒泡排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803]
插入排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803]
选择排序: [204, 209, 300, 393, 417, 517, 591, 739, 789, 803]
'''

想了解更多编程学习,敬请关注php培训栏目!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

python列表排序有哪些

python列表排序有哪些:python列表排序:1、冒泡排序,是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来;2、插入排序,通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。相关学习推荐:
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top