python实现 冒泡排序 选择排序 插入排序

"""
要掌握冒泡排序
选择排序
插入排序
快速排序的实现方法
"""
"""冒泡排序
冒泡排序算法的运作:
    1、比较相邻元素,如果第一个比第二个大(升序),就交换他们两个
    2、对每一对相邻元素做同样的工作,从开始到结尾的最后一对,这步做完后,最后的元素会是最大的数
    3、针对所有的元素重复以上的步骤,除了最后一个
    4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
"""
li = [1,2,3,32,23,65,12,13,11,9,0]


def bubble_sort(alist):
    for i in range(len(alist)-1,0,-1):
        for j in range(i):
            if alist[j] > alist [j+1]:
                alist[j],alist[j+1] = alist[j+1],alist[j]


bubble_sort(li)
print(li)

"""
选择排序:
    是一种简单直观的排序算法。它的工作原理如下:
    首先在未排序中找到最小会最大元素,存放到排序序列的起始位置,然后,再从剩余未培训元素中继续寻找最小 最大元素,然后方法已排序的序列的末尾
    以此类推,直到所有元素排序完成
    
    运作方法:
        第一步:要找到最小值 或者最大值 通过比较获取最小值
        第二部: 和标记的最小值进行比较,如果比最小值小 那就交换值
"""
li = [1,2,3,32,23,65,12,13,11,9,0]


def choose_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[min_index]: # 要和定义的最小值进行比较 比定义的最小值比较小就交换
                min_index = j

        if min_index != i:
            alist[i],alist[min_index] = alist[min_index],alist[i]


choose_sort(li)
print(li)

"""
插入排序:
    是一种简单直观的排序算法。工作原理是 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,
    找到相应位置插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已经排序的元素逐步向后挪位,为
    最新元素提供插入空间
"""


def insert_sort(alist):
    for i in range(1,len(alist)):
        for j in range(i,0,-1):
            if alist[j]<alist[j-1]:
                alist[j],alist[j-1] = alist[j-1],alist[j]


li = [1,2,3,32,23,65,12,13,11,9,0]
insert_sort(li)
print(li)

 

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Richard_Kong
"""
要掌握冒泡排序
选择排序
插入排序
快速排序的实现方法
"""
"""冒泡排序
冒泡排序算法的运作:
1、比较相邻元素,如果第一个比第二个大(升序),就交换他们两个
2、对每一对相邻元素做同样的工作,从开始到结尾的最后一对,这步做完后,最后的元素会是最大的数
3、针对所有的元素重复以上的步骤,除了最后一个
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
"""
li = [1,2,3,32,23,65,12,13,11,9,0]


def bubble_sort(alist):
for i in range(len(alist)-1,0,-1):
for j in range(i):
if alist[j] > alist [j+1]:
alist[j],alist[j+1] = alist[j+1],alist[j]


bubble_sort(li)
print(li)

"""
选择排序:
是一种简单直观的排序算法。它的工作原理如下:
首先在未排序中找到最小会最大元素,存放到排序序列的起始位置,然后,再从剩余未培训元素中继续寻找最小 最大元素,然后方法已排序的序列的末尾
以此类推,直到所有元素排序完成

运作方法:
第一步:要找到最小值 或者最大值 通过比较获取最小值
第二部: 和标记的最小值进行比较,如果比最小值小 那就交换值
"""
li = [1,2,3,32,23,65,12,13,11,9,0]


def choose_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[min_index]: # 要和定义的最小值进行比较 比定义的最小值比较小就交换
min_index = j

if min_index != i:
alist[i],alist[min_index] = alist[min_index],alist[i]


choose_sort(li)
print(li)

"""
插入排序:
是一种简单直观的排序算法。工作原理是 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,
找到相应位置插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已经排序的元素逐步向后挪位,为
最新元素提供插入空间
"""


def insert_sort(alist):
for i in range(1,len(alist)):
for j in range(i,0,-1):
if alist[j]<alist[j-1]:
alist[j],alist[j-1] = alist[j-1],alist[j]


li = [1,2,3,32,23,65,12,13,11,9,0]
insert_sort(li)
print(li)

posted @ 2021-08-22 22:30  GalaxyStar  阅读(91)  评论(0编辑  收藏  举报