python基础编程_32_插入排序,冒泡排序,选择排序

1.插入排序流程图:


#插入排序

#从第二个数开始比较,把它的值保存为value
#while循环从i-1的位置开始逐步递减和value比较,
#在找到第一个小于value的值时,将该位置的后一个位置的值赋值为value
#在赋值之前,所有位置依次后移一位
mylist=[5,2,4,6,1,3]
for i in range(1,len(mylist)):
    value=mylist[i]
    j=i-1
    
    while( j>=0 and mylist[j]>value):
        mylist[j+1]=mylist[j]
        j=j-1
    mylist[j+1]=value
print(mylist)
[1, 2, 3, 4, 5, 6]

2.冒泡排序

冒泡排序的思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置
冒泡排序原理: 每一趟只能将一个数归位, 如果有n个数进行排序,只需将n-1个数归位, 也就是说要进行n-1趟操作(已经归位的数不用再比较)
def bubbleSort(nums):
    for i in range(len(nums)-1):    # 这个循环负责设置冒泡排序进行的次数
        for j in range(len(nums)-i-1):  # j为列表下标
            if nums[j] > nums[j+1]:
                nums[j], nums[j+1] = nums[j+1], nums[j]
    return nums

nums = [5,2,4,6,1,3]

print (bubbleSort(nums))


3.选择排序

选择排序注意点(假设第一层循环变量为:i;第二层循环变量为:j):
[0,i-1]是已经排序好的元素。
定义一个变量,用来记录本次循环下找到的最小元素的下标。

第二层循环是从[i,length -1]中找到最小元素的下标,用来与i元素交换

a = [3, 4, 1, 6, 2, 9, 7, 0, 8, 5]
print(a)  
for i in range(len(a)):  
    for j in range(i+1,len(a)):  
        if a[i]>a[j]:  
            a[i],a[j]=a[j],a[i]  
print(a)  
[3, 4, 1, 6, 2, 9, 7, 0, 8, 5]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值