Python -冒泡排序&插入排序
<!doctype html>Python - 冒泡排序&插入排序
Python - 冒泡排序&插入排序
冒泡排序
#! /usr/bin/python
# -*- encoding:utf-8 -*-
# author:NikeHu
li = [5,26,17,1,36,55,45,13,29]
li.sort()
print(li) #[1, 5, 13, 17, 26, 29, 36, 45, 55]
def buble_sort(li):
for i in range(len(li)-1)[::-1]:
for j in range(i):
if li[j] > li[j+1]:
li[j],li[j+1] = li[j+1],li[j]
return li
li = buble_sort(li)
print(li) #[1, 5, 13, 17, 26, 29, 36, 45, 55]
原理:遍历列表,将当前元素与后一项元素比较,若后一项元素的值小于前一项的值,则交换两个元素的位置,
遍历完一轮后,将遍历的长度减一,再次执行上述步骤,直至遍历的长度为0.
插入排序
#! /usr/bin/python
# -*- encoding:utf-8 -*-
# author:NikeHu
li = [5,26,17,1,36,55,45,13,29]
li.sort()
print(li) #[1, 5, 13, 17, 26, 29, 36, 45, 55]
def insert_sort(li):
for i in range(len(li)-1):
for j in range(i+1,len(li)-1):
if li[i] > li[j]:
li[i],li[j] = li[j],li[i]
return li
li = insert_sort(li)
print(li) #[1, 5, 13, 17, 26, 29, 36, 45, 55]
原理:依次获取列表的前n-1个元素,使其与其后的元素进行比较,若该元素大于与其进行比较的元素,则交换两个元素的位置.