四种常见排序算法的Python实现

今天试着用Python实现了冒泡排序、选择排序、插入排序和快速排序,代码如下:

冒泡排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
a=eval(input("请输入你要排序的列表:"))
def compare(t):
if a[t]>a[t+1]:
return 0
else:
return 1
def compare_list(a):
lst=[]
for i in range(0,len(a)-1):
lst.append(compare(i))
return lst
while sum(compare_list(a))<len(a)-1:
for j in range(0,len(a)-1):
if compare(j)==0:
c=a[j+1]
a[j+1]=a[j]
a[j]=c
print(a)

选择排序

1
2
3
4
5
6
7
8
a=eval(input("请输入你要排序的列表:"))
lst=[]
ini_length=len(a)
while len(lst)<ini_length:
lst.append(max(a))
a.remove(max(a))
lst=lst[::-1]
print(lst)

插入排序

1
2
3
4
5
6
7
8
9
a=eval(input("请输入你要排序的列表:"))
for i in range(1,len(a)):
j=0
while a[i]>a[j]:
j=j+1
else:
a.insert(j,a[i])
del a[i+1]
print(a)

快速排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def quick_sort(data):      
if len(data)>=2:
mid=data[len(data)//2]
left,right=[],[]
data.remove(mid)
for num in data:
if num>=mid:
right.append(num)
else:
left.append(num)
return quick_sort(left)+[mid]+quick_sort(right)
else:
return data
a=eval(input("请输入你要排序的列表:"))
print(quick_sort(a))

这里的快速排序代码使用了分而治之和递归的思想,在定义的函数体中实现了递归,有效简化了代码。


四种常见排序算法的Python实现
https://brockshuai.github.io/2023/01/11/排序算法/
作者
神仙魚
发布于
2023年1月11日
许可协议