sorted_一个函数秒杀冒泡排序算法和选择排序

sorted一招杀

a = [3,9,12,4,5,7,8,110]
print(sorted(a,reverse=True))# true为降序
print(sorted(a,reverse=False))# revers= false为升序
print(sorted(a))#默认是false升序排列


Bubble_sort
下面看看坑死人无数的冒泡排序
内循环和外循环
每次循环依次比较大小并来回挪坑,直到把目标值放入设定坑
再剩下的那堆继续如上操作
圈复杂度O(n²)
import  time
def bubble_sort(a):
time1 = time.time()
for i in range (len(a)-1,0,-1):
for j in range (i):
if a[j] > a[j+1]:
a[j],a[j+1] = a[j+1],a[j]
time2 = time.time()
print(a)
print(time2 - time1)
a = [9,15,7,2,1]
bubble_sort(a)
select_sort
优化一下下,因为有人说读比写节约资源,那么选择排序登台
我每一轮找最值,然后只交换最值与既定坑值
圈复杂度还是O(n²)
#比较n-1次;最多交换n-2次
# 算法不稳定,优势较冒泡读比写节约资源
'''
首先在未排序的序列中找到最大(小)元素
存放到排序序列的起(终)位置
再从剩余未排序元素中继续寻找最大(小)元素,然后放在已排序序列的末尾或前面~
'''
def select_sort(a):
for i in range (len(a)-1):
#动态标记最小索引位置
min_index = i
for j in range (i+1,len(a)):
if a[j] < a[min_index]:#每一轮找一次最小值,找到后记录下最小值索引值
min_index = j
if min_index != i:#如果最小值索引值与预设不一致,将预设位数与本轮比较最小值做交换
a[i],a[min_index] = a[min_index],a[i]
return a
a = [99,123,2,6,9527]
select_sort(a)
print(a)
posted @ 2019-03-23 10:39  数字原住民  阅读(256)  评论(0编辑  收藏  举报