python中的冒泡排序法和选择排序法

冒泡排序法

s = [1,3,2,5,9,7,6,4]
for i in range(len(s)):
    for j in  range(i+1,len(s)):  
        if s[i] > s[j]:   ##每次遍历先找到一个最小的值。
        #if s[i] < s[j]:
            s[i],s[j] = s[j],s[i]
print(s)


[1, 2, 3, 4, 5, 6, 7, 9]

#[9, 7, 6, 5, 4, 3, 2, 1]

选择排序法

s = [1,3,2,5,9,7,6,4]
for i in range(len(s)-1): ##因为选择排序法是两两相邻的两个数进行比较,所以i取得值为总的长度减1
    for j in range(0,len(s)-1-i): ##每一轮的比较,注意range的变化,这里需要进行len(s)-1的长度的变化,注意减i的意义(可以减去比较已经排好序的元素)
        if s[j] > s[j+1]:
            s[j],s[j+1] = s[j+1],s[j]
print(s)


[1, 2, 3, 4, 5, 6, 7, 9]

n值较小时,选择排序比冒泡排序好

你可能感兴趣的:(linux)