sorted_一个函数秒杀冒泡排序算法和选择排序
生活随笔
收集整理的這篇文章主要介紹了
sorted_一个函数秒杀冒泡排序算法和选择排序
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
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))#默認(rèn)是false升序排列
Bubble_sort
下面看看坑死人無數(shù)的冒泡排序
內(nèi)循環(huán)和外循環(huán)
每次循環(huán)依次比較大小并來回挪坑,直到把目標(biāo)值放入設(shè)定坑
再剩下的那堆繼續(xù)如上操作
圈復(fù)雜度O(n2) 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
優(yōu)化一下下,因?yàn)橛腥苏f讀比寫節(jié)約資源,那么選擇排序登臺(tái)
我每一輪找最值,然后只交換最值與既定坑值
圈復(fù)雜度還是O(n2) #比較n-1次;最多交換n-2次
# 算法不穩(wěn)定,優(yōu)勢(shì)較冒泡讀比寫節(jié)約資源
'''
首先在未排序的序列中找到最大(小)元素
存放到排序序列的起(終)位置
再從剩余未排序元素中繼續(xù)尋找最大(小)元素,然后放在已排序序列的末尾或前面~
'''
def select_sort(a):
for i in range (len(a)-1):
#動(dòng)態(tài)標(biāo)記最小索引位置
min_index = i
for j in range (i+1,len(a)):
if a[j] < a[min_index]:#每一輪找一次最小值,找到后記錄下最小值索引值
min_index = j
if min_index != i:#如果最小值索引值與預(yù)設(shè)不一致,將預(yù)設(shè)位數(shù)與本輪比較最小值做交換
a[i],a[min_index] = a[min_index],a[i]
return a
a = [99,123,2,6,9527]
select_sort(a)
print(a)
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))#默認(rèn)是false升序排列
Bubble_sort
下面看看坑死人無數(shù)的冒泡排序
內(nèi)循環(huán)和外循環(huán)
每次循環(huán)依次比較大小并來回挪坑,直到把目標(biāo)值放入設(shè)定坑
再剩下的那堆繼續(xù)如上操作
圈復(fù)雜度O(n2) 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
優(yōu)化一下下,因?yàn)橛腥苏f讀比寫節(jié)約資源,那么選擇排序登臺(tái)
我每一輪找最值,然后只交換最值與既定坑值
圈復(fù)雜度還是O(n2) #比較n-1次;最多交換n-2次
# 算法不穩(wěn)定,優(yōu)勢(shì)較冒泡讀比寫節(jié)約資源
'''
首先在未排序的序列中找到最大(小)元素
存放到排序序列的起(終)位置
再從剩余未排序元素中繼續(xù)尋找最大(小)元素,然后放在已排序序列的末尾或前面~
'''
def select_sort(a):
for i in range (len(a)-1):
#動(dòng)態(tài)標(biāo)記最小索引位置
min_index = i
for j in range (i+1,len(a)):
if a[j] < a[min_index]:#每一輪找一次最小值,找到后記錄下最小值索引值
min_index = j
if min_index != i:#如果最小值索引值與預(yù)設(shè)不一致,將預(yù)設(shè)位數(shù)與本輪比較最小值做交換
a[i],a[min_index] = a[min_index],a[i]
return a
a = [99,123,2,6,9527]
select_sort(a)
print(a)
轉(zhuǎn)載于:https://www.cnblogs.com/digitalNatives/p/10582807.html
總結(jié)
以上是生活随笔為你收集整理的sorted_一个函数秒杀冒泡排序算法和选择排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算输入序列能组成三角形的个数
- 下一篇: 00020970-0000-0000-C