码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-07-24 23:35:59      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:bsp   index   pre   部分   style   决定   错误   循环   osi   

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

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排序-冒泡排序、选择排序、插入排序

标签:bsp   index   pre   部分   style   决定   错误   循环   osi   

原文地址:http://www.cnblogs.com/siyz/p/7231569.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!