python的简单排序(1.选择排序)

#创作灵感#

来源于最近的数据结构的学习

1.需要我们具备对o()这个时间复杂度具有一定的了解

2.明白遍历以及for循环的使用

好,现在我们步入正题:

何为选择排序(selection sort)?

实质上:

每一次从待排序的数据元素中选出最小中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

这么一听,感觉有点懵懵的。----没关系,我来带着你一条代码一条代码去理解。

来我们先创建一条关于选择函数的函数名

我们来看到这里

第一行是 创建了一条关于(选择函数的函数):def selection_sort(arr):

这里的arr,咱们可以视为广义的数组,因为我并未在此处使用import heap----来创建数组

然后来到第二行---for i in range(len(arr)):  这里遍历了从0到len(arr)范围内的数,len(arr)与数组里面的数据数量有关。为何这样遍历

因为想让i被赋予从0到len(arr)-1 的下标后面好不断更新起始点---咱先往后看。

此处的min_index = i 是为到后面交换遍历后 交换这里面最小数的指针

然后我们接着往下看,来到此处:

对于这一条for循环遍历----我的理解是  这一段不断遍历出最小的那个数才停止。

就是说它要寻找出范围(i+1,len(arr))内最小的那个数,把那个数的下标“j”---重新赋给min_index

的数-----那么我说过python的是一个面向对象的动态语言,所以此时的min_index所指向的是j

然后咱得出了---min_index = j 这个数据之后结束了嵌套中for的循环,执行下一条在外部的for循环的指令----arr[i],arr[min_index] = arr[min_index],arr[i]

这一条指令是交换以min_index为下标的数与以开头(起始值)的下标i的数值,python的数据执行时以右到左。请记好了。swap-交换,这里我就不一一赘述了

最后return arr ----返回调整后的arr,这里大白话就是把那个现在的i下标的数值与那个min_index的下标的数值交换后的数组arr。arr数组这个数据大小并未发生改变,只是进行了交换而已,返回交换后的arr。最后提一个醒,return arr是在for i in range(len(arr)): 之内的,就是它还会被继续使用直到全部排序好后for遍历完arr才结束,而不是直接就返回已经全部排序好的数组arr。

它的时间复杂度是O(N**2):

上面那个图就是其解释

这个便是selection_sort()函数的全部过程

tips:该函数,已经经过本人验证多次,可以运行并且由对数器(下一次我会提到)校对过

如果在写的时候出现错误,请多修正几次。学代码就是不能怕出错。

加油!!!

题外话:本人是一名大一学生,平常有很多东西要学习,所以更新的频率不敢保证。不过还是会尽量抽出时间,给出对咱新人友好的数据解释。感谢你们的支持,也希望我们可以多交流多讨论,谢谢。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值