数据结构与算法 经典排序方法(Python)

1.冒泡排序

        1.1冒泡排序

def bubble_sort(li):
    for i in range(len(li)-1):
        for j in range(len(li)-i-1):
            if li[j] > li[j+1]:
                li[j],li[j+1] = li[j+1],li[j]
li=[2,4,5,45,6,74,3]
bubble_sort(li)
print(li)

        1.2冒泡排序改进:        

def bubble_sort(li):
    for i in range(len(li)-1):
        exchange=False
        for j in range(len(li)-i-1):
            if li[j] > li[j+1]:
                li[j],li[j+1] = li[j+1],li[j]
                exchange = True
        if not exchange:
            return
li=[2,4,5,45,6,74,3]
bubble_sort(li)
print(li)

2.选择排序

        2.1新建列表选择排序:

new_list=[]
def select_sort(li):
    for i in range(len(li)):
      min_1=min(li)
      new_list.append(min_1)
      li.remove(min_1)
li = [3,2,4,1,5,7,9,6,8]
select_sort(li)
print(new_list)

         2.2双重循环选择排序:

def select_sort(li):
    for i in range(len(li)):
        min_loc = i
        for j in range(i+1,len(li)-1):
            if li[j]<li[min_loc]:
                    min_loc = j
        li[i], li[min_loc] = li[min_loc], li[i]
li = [1, 2, 54, 67, 11, 24]
select_sort(li)
print(li)

3.插入排序:

3.1插入排序:

def insert_sort(li):
    for i in range(1,len(li)):
            tmp = li[i]
            j=i-1
            while j>=0 and li[j]>tmp:
                    li[j+1] = li[j]
                    j-=1
            li[j+1] = tmp
li = [3,2,4,1,5,7,9,6,8]
insert_sort(li)
print(li)

猜你喜欢

转载自blog.csdn.net/fhy567888/article/details/131926116
今日推荐