#!/usr/bin/python
# -*- coding: utf-8 -*-
# 冒泡排序
def bubble_sort(alist):
'''冒泡排序'''
# 计算列表长度
n = len(alist)
for i in range(n-1, 0, -1):
for j in range(i):
if alist[j] > alist[j+1]:
alist[j], alist[j+1] = alist[j+1], alist[j]
# 选择排序
def selection_sort(alist):
'''选择排序'''
n = len(alist)
for i in range(n-1):
min_index = i
for j in range(i+1, n):
if alist[j] < alist[i]:
min_index = j
if i != min_index:
alist[i], alist[min_index] = alist[min_index], alist[i]
# 插入排序
def insert_sort(alist):
'''插入排序'''
n = len(alist)
for i in range(1, n):
for j in range(i, 0, -1):
if alist[j-1] > alist[j]:
alist[j-1], alist[j] = alist[j], alist[j-1]
# 快速排序
def quick_sort(alist, start, end):
"""快速排序"""
# 递归的退出条件
if start >= end:
return
# 设置列表第一个值为中间值
mid = alist[start]
head_index = start
tail_index = end
while head_index < tail_index:
while head_index < tail_index and alist[tail_index] >= mid:
tail_index -= 1
alist[head_index] = alist[tail_index]
while head_index < tail_index and alist[head_index] < mid:
head_index += 1
alist[tail_index] = alist[head_index]
alist[head_index] = mid
quick_sort(alist, start, head_index-1)
quick_sort(alist, head_index+1, end)
几种简单的排序算法一(冒泡、选择、插入、快速)python描述
最新推荐文章于 2021-08-25 12:37:42 发布