Python实现排序方法常见的四种

本文给大家分享python四种常见排序方法,每种方法通过实例代码给大家介绍的非常详细,需要的朋友参考下吧

1.冒泡排序,相邻位置比较大小,将比较大的(或小的)交换位置

 def maopao(a): for i in range(0,len(a)): for j in range(0,len(a)-i-1): if a[j]>a[j+1]: temp = a[j+1] a[j+1] = a[j] a[j] = temp #print(a) #print(a) print(a)

2.选择排序,遍历选择一个最小的数与当前循环的第一个数交换

 def xuanze(a): for i in range(0,len(a)): k=i temp = a[i] for j in range(i,len(a)): if a[j]

3.快速排序:将子段的第一个元素做为中值,先从右向左遍历,如过比中值大high-1,如果比中值小,将这个值放到low那里。

然后从左向右开始遍历,如果左侧的比中值大,将他放到high那里。当low>=high时,将中值的值赋给low

(1.以下为参照公众号中的做法:

 a =[7,1,3,2,6,54,4,4,5,8,12,34] def sort(a,low,high): while low =temp: high = high-1 a[low]=a[high] while low

(2.以下是参照网上的做法:

在做快速排序时一直各种问题,是因为地柜那里没有考虑清楚,一直把low的值赋值为0了,实际上应该是不固定的low值,他每个子循环不定。

 ''' 遇到问题没人解答?小编创建了一个Python学习交流群:531509025 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' a =[7,1,3,2,6,54,4,4,5,8,12,34] def sort(a,low,high): while low =temp: high = high-1 while low

4.插入排序:从左向右遍历,依次选取数值,从数值的左侧从右向左遍历,选择第一个比他小的数值的右侧插入该数值,其他数值依次向后赋值

 #插入排序 a =[7,1,3,2,6,54,4,4,5,8,12,34] for i in range(0,len(a)-1): temp=a[i+1] j=i+1 while j>=0 and temp=-1: k= i+1 while k>=j: a[k]=a[k-1] k=k-1 print(a) a[j]=temp print(a)

插入排序方法2,用到了列表的a.insert(1,2)和清楚a[2:3]=[],这样可以少用一个循环

 a =[7,1,3,2,6,54,4,4,5,8,12,34] for i in range(1,len(a)-1): temp=a[i] j=i-1 while j>=0 and temp<=a[j]: print(temp) j=j-1 if j >=-1: a[i:i+1]=[] a.insert(j+1,temp) print(a) print(a)

以上就是Python实现排序方法常见的四种的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » python