Python排序-冒泡排序选择排序插入排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python排序-冒泡排序选择排序插入排序相关的知识,希望对你有一定的参考价值。

‘‘‘
冒泡排序
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端
‘‘‘

data_set = [12,45,2,48,66,2,1,56,36,90,5,10,503]

for i in range(len(data_set)):   ##控制相邻比较的轮数 
    for j in range(len(data_set)-i-1):  #控制每轮相邻比较的次数
        #如果前面的元素的值大于后面一个元素 互换值
        if data_set[j]>data_set[j+1]:
            temp = data_set[j]
            data_set[j]=data_set[j+1]
            data_set[j+1]=temp
    #print(data_set)
print(data_set)
‘‘‘
选择排序
从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作
‘‘‘

data_set = [12,45,2,48,66,2,1,56,36,90,5,10,503]

for i in range(len(data_set)):  #大圈决定轮数 也就是我们选择的次数
    minIndex = i
    for j in range(i+1,len(data_set)):  #小圈就是我们每次 选择后比较的次数
        #//如果后面的元素比我选择元素还小 就互换位置
        if data_set[j] < data_set[minIndex] :
            minIndex=j
    temp = data_set[i]
    data_set[i]=data_set[minIndex]
    data_set[minIndex] = temp

print(data_set)
‘‘‘
插入排序
插入排序(Insertion Sort)的基本思想是:将列表分为2部分,左边为排序好的部分,右边为未排序的部分,循环整个列表,每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。
‘‘‘

source = [12,45,2,48,66,2,1,56,36,90,5,10,503]

for i in range(1,len(source)):
    current_val = source[i]   #先记下每次大循环走到的第几个元素的值
    position = i
    while position>0 and source[position-1]>current_val:   #循环次数i大于0  and  前一位数大于后一位数
        source[position] = source[position-1] # 讲后一位数放到前面 , 根据值的大小排序
        position -= 1   #把前面的数放到后面
    source[position] = current_val  #已经找到了左边排序好的列表里不小于current_val的元素的位置,把current_val放在这里
    print(source)

 

以上是关于Python排序-冒泡排序选择排序插入排序的主要内容,如果未能解决你的问题,请参考以下文章

python实现时间复杂度平均为N^2的冒泡选择插入排序

python实现时间复杂度平均为N^2的冒泡选择插入排序

python实现时间复杂度平均为N^2的冒泡选择插入排序

Python排序-冒泡排序选择排序插入排序

Python八大算法的实现,插入排序希尔排序冒泡排序快速排序直接选择排序堆排序归并排序基数排序。

python 数据结构与算法之排序(冒泡,选择,插入)