一、冒泡排序

二、选择排序

三、插入排序

四、快速排序

五、堆排序

六、归并排序

七、基数排序

八、希尔排序

九、桶排序

十、总结

 

一、冒泡排序

1、思路:首先,列表每两个相邻的数比较大小,如果前边的比后边的大,那么这两个数就互换位置。就像是冒泡一样

2、代码关键点:

  • 趟数:n-1趟
  • 无序区

3、图示说明:依次类推就会得到排序结果。冒泡排序的效率还是很低的

算法_常用排序算法

4、代码示例

# 思路:列表中两个相邻的数比较大小,如果前边的比后边的大,那么这两个就互换位置
def bubblr_sort(li):
    for i in range(1,len(li)-1):#表示趟数
        change = False
        for j in range(len(li)-i):  #表示无序区,无序区的范围为0,len(li)-i
            if li[j] > li[j+1]:
                li[j],li[j+1] = li[j+1],li[j]
                change = True

        if not change:
            return

li = list(range(10))
import random
random.shuffle(li)
print(li)
bubblr_sort(li)
print(li)



def bubblr_sort(li,reverse=False):
    for i in range(1,len(li)-1):#表示趟数
        change = False
        for j in range(len(li)-i):  #表示无序区,无序区的范围为0,len(li)-i
            if not reverse:
                # 从小到大排序
                if li[j] > li[j+1]:
                    li[j],li[j+1] = li[j+1],li[j]
                    change = True
            else:
                # 从大到小排序
                if li[j] < li[j+1]:
                    li[j],li[j+1] = li[j+1],li[j]
                    change = True

        if not change:
            return

li = list(range(10))
import random
random.shuffle(li)
print(li)
bubblr_sort(li,True)
print(li)
冒泡算法

相关文章: