八大排序算法
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))
输出结果: