乐清中学2023级高二下信息技术校本作业(选修一轮专趣)数据排序【知识回顾】1.数据排序西数(1)sort0:只适用于列表,直接对列表进行排序,不会产生新的序列。a=[3,9,7,12,0,4]a.sort()#默认升序排序print(a)[0,3,4,7,9,12]a.sort (reverse=True)#降序排序print(a)[12,9,7,4,3,0](2)sorted():内建函数,返回一个新的排序后的序列,原序列依旧存在。a=[3,9,7,12,0,4]b=sorted(a)#默认升序排序c=sorted(a,reverse=True)#降序排序print(a)[3,9,7,12,0,4]print(b)[0,3,4,7,9,12]print(c)[12,9,7,4,3,0]2.冒泡排序和选择排序基本思想冒泡#卉选择排序思想方法相邻位置数据、边比较边交换先找出最大值或最小值,再交换(1)n个数都需要n-1遍排序,其中变量i控制排序的遍数相同点(2)比较的次数相同,都是(-1)+(-2)+.…+2+1=n*-1)2次(3)最好的情况下,交换的次数一样,都是Q次。(4)时间复杂度0边比较边交换,最坏的情况下交换的先找再交换,最坏的情况下交换的次数是不同点次数是(n1)机/2次-1次因为是相邻两数比较,因此代码中有因为是先找出最达值或最处值,一般用变辨别方法类似“a[j]和a[j-l]比较的条件表达量k来记录该值所在的位置。如果k!=i,式则交换3.排序的代码实现:对数组进行升序排序a=[23,20,13,18,14,11,98,4]n=len(a)从前往后for i in range(1,n):for i in range(1,n):for j in range(0,n-i):for j in range(1,n-i+1):冒if a[j]>a[j+1]:if a[j-1]>a[j]:泡a[j],a[j+1]=a[j+1],a[j]a[j-1],a[j]=a[j],a[j-1]排从后往前序for i in range(1,n):for i in range(1,n):for j in range(n-2,i-2,-1):for j in range(n-1,i-1,-1):if a[j]>a[j+1]:if a[j-1]>a[j]:a[j],a[j+1]=a[j+1],a[j]a[j-1],a[j]=a[j],a[j-1]选for i in range(n-1):择i排for j in range(i+l,n)序if a[j]
暂无评论内容