python基础算法

python基础算法(水仙花数、冒泡排序,选择排序)

前言

第一次写文章,难免会有错误,大家谅解一下。本文目前讲一下一些基础算法题,水仙花数、冒泡排序、选择排序。本人初入,大佬路过有好的想法请求赐教。

水仙花数

  1. 水仙花数是指三位数,个位十位百位每个位的3次幂之和等于它本身(核心)。(例如:3^3 + 7^3+ 0^3 = 370)
  2. 代码实现
    在这里插入图片描述

在这里插入图片描述

冒泡排序

1.从第一个数组元素开始,依次比较相邻两个元素的值,保持大的数值在后边,那么第一次循环过后,最大的一个数就到了最后的位置。第二次循环从0开始到倒数第二个元素,因为最后一个元素已经是最大的了,无需在进行比较,然后重复上述步骤,依次类推。

2.代码实现
在这里插入图片描述逻辑分析:
第一次遍历,最大的数就会移到最后的位置上:
[1,3,5,7,4,2,8,6,9]
第二次遍历,从位置0开始(对应第一个的位置):
[1,3,5,4,2,7,6,8,9]
依次类推得到最后结果为:
[1,2,3,4,5,6,7,8,9]

选择排序

1.原理:取需排序数组的第一个值,作为基准比较值,然后从第二个值开始循环,依次跟这个基准值做比较,如果比基准值小,则交换位置。第二次循环,则取第二个值作为基准值,依此类推。

2.代码实现

在这里插入图片描述这里我还是以’137584296’来举例:
第一次遍历以1为基准,1与后面的做比较,1为最小,不需要交换位置
第二次遍历以3为基准,找到了比3小的数2,则交换位置得:
127584396
第三次遍历以7为基准,找到比7最小的数得:
123584796
依次循环遍历得到:
123456789

冒泡排序与选择排序

冒泡排序和选择排序时间复杂度都为O(n^2),两个循环嘛。冒泡排序一次循环下来可能要交换很多次,但是选择排序只交换一次。在遇到两个相同的数的时候,则不用交换位置,跳过这个数,选择排序是从首位往末位压,而冒泡排序是从末位往首位压。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值