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个元素,使其与其后的元素进行比较,若该元素大于与其进行比较的元素,则交换两个元素的位置.

posted on 2019-01-02 13:28  野犬  阅读(78)  评论(0编辑  收藏  举报