python列表排序:1、冒泡排序,是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来;2、插入排序,通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
1、冒泡排序
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
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)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前的扫描过程中,需要把已排序元素逐步向后挪位,为最新元素提供插入空间。
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] '''
python列表排序有哪些
—–文章转载自PHP中文网如有侵权请联系admin#tyuanma.cn删除
windows下怎么安装php开发环境
转载请注明来源:python列表排序有哪些_编程技术_亿码酷站
本文永久链接地址:https://www.ymkuzhan.com/783.html
本文永久链接地址:https://www.ymkuzhan.com/783.html
下载声明:
本站资源如无特殊说明默认解压密码为www.ymkuzhan.com建议使用WinRAR解压; 本站资源来源于用户分享、互换、购买以及网络收集等渠道,本站不提供任何技术服务及有偿服务,资源仅提供给大家学习研究请勿作它用。 赞助本站仅为维持服务器日常运行并非购买程序及源码费用因此不提供任何技术支持,如果你喜欢该程序,请购买正版! 版权声明:
下载本站资源学习研究的默认同意本站【版权声明】若本站提供的资源侵犯到你的权益,请提交版权证明文件至邮箱ymkuzhan#126.com(将#替换为@)站长将会在三个工作日内为您删除。 免责声明:
您好,本站所有资源(包括但不限于:源码、素材、工具、字体、图像、模板等)均为用户分享、互换、购买以及网络收集而来,并未取得原始权利人授权,因此禁止一切商用行为,仅可用于个人研究学习使用。请务必于下载后24小时内彻底删除,一切因下载人使用所引起的法律相关责任,包括但不限于:侵权,索赔,法律责任,刑事责任等相关责任,全部由下载人/使用人,全部承担。以上说明,一经发布视为您已全部阅读,理解、同意以上内容,如对以上内容持有异议,请勿下载,谢谢配合!支持正版,人人有责,如不慎对您的合法权益构成侵犯,请联系我们对相应内容进行删除,谢谢!