交换排序


八大排序算法


1、冒泡排序
想法:左右比较,大的往右移动,直到每一次排序后,大的都会到最右边。

具体实例:
这里写图片描述

Python实现:

def bubble_sort(list1):
    count=len(list1)
    for i in range(count):
        for j in range(count-1):
            if list1[j]>list1[j+1]:
                list1[j],list1[j+1]=list1[j+1],list1[j]
    print (list1)

a=[3,6,4,2,11,10,5]
bubble_sort(a)

输出结果:
这里写图片描述

2、快速排序
想法:以第一个数为基准数,左边和右边各设置一个指针,右边开始和基准数进行比较。

右边大,则右指针滑一个;直到找到小的,跳出循环
右边赋值;
左边小,则左指针滑一个;直到找到大的,跳出循环
左边赋值;         而后两边递归快排。

具体实例:



Python实现:

def quick_sort(list1,left,right):
    if left >= right:
        return list1
    key = list1[left]
    low = left
    high = right
    while left<right:
        while left<right and key<=list1[right]:
            right-=1

        list1[left]=list1[right]

        while left<right and key>=list1[left]:
            left+=1

        list1[right]=list1[left]

    list1[right]=key
    quick_sort(list1,low,left-1)
    quick_sort(list1,left+1,high)
    return  (list1)

a=[49,38,65,97,76,13,27,50]
print (quick_sort(a,0,7))

输出结果:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/petoilej/article/details/79183017