Python的简单排序算法

Python的简单排序算法

简单选择排序——每次从剩下的元素中选择最小

排序可以用以下函数,但我们在这里不用。

  • sort()函数默认排升序

  • sort(reverse=False)排升序

  • sort(reverse=True) 排降序

    主要思想,选出第一个假设它为最小值与其他值比较,比它小的记下下标并交换值,不符合条件的位置不动 往后继续比较。最后返回最小值下标,交换两个的值。 然后开始第二次循环。

    从第一个开始比较小于最小值的元素把它位置记下,一次循环完过后将最小的值换到前面,外循环再依次做上面步骤。

nums = [35,12,99,58,67,42,49,31,73]
print(nums)
nums.sort()
print(nums)
for i in range(len(nums)-1):
    #假设第一个元素就是最小值
    min_value,min_index = nums[i],i
    #通过循环寻找有没有更小的值并记下它的位置
    for j in range(i + 1,len(nums)):
        if nums[j]<min_value:
            min_value,min_index=nums[j],j
    #上一次循环完后才交换位置,将最小的值换到最前面的位置 
    nums[i],nums[min_index]=nums[min_index],nums[i]
print(nums)

在这里插入图片描述

冒泡排序——元素两两比较,如果前面的元素大于后面的元素,就交换两个元素的位置

主要思想式进行两两比较,内循环(前大于后大的元素交换两个元素的位置,依次向后进行比较,最后把最大的放到了最后),外循环(再来比较第二个数,同前一样依次比较。一直进行到倒数第二个。)

nums = [35,12,99,58,67,42,49,31,73]
for i in range(0,len(nums)):
    for j in range(0,len(nums)-1):
        if nums[j]>nums[j+1]:
            nums[j],nums[j+1]=nums[j+1],nums[j]
print(nums)

在这里插入图片描述

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值