蓝色星晨|Python学习重在实践,对选择排序法的发散练习
对于刚入门Python的人经常有这样一种感觉 , 那就是当看到别人写的代码时 , 大脑说:“真简单 , 我会了!”但等到需要自己去写代码时 , 手却说 , “对不起 , 我不会 。 ”
这就是缺乏实践的缘故!实践可以让我们做到熟能生巧 , 对于一些常规的问题形成条件反射 , 手指和大脑形成快速联动 。 实践的一种好方式就是 , 选择一个目标 , 然后不断进行发散 , 通过不同的方式去完成 , 每完成一种方式就是对这种方式所涉及到知识的一种巩固 。 这也是我们在《Python学习方法:先生主干、再繁枝叶 , 任何领域都适用》一文中所提倡的学习方法 。
本文以选择排序法为例 , 研究各种不同的实现方式 , 以及过程中所涉及到的知识点 。
选择排序法介绍【蓝色星晨|Python学习重在实践,对选择排序法的发散练习】选择排序法是一种非常简单直观的算法 , 虽然简单 , 但也可以锻炼下逻辑思维能力 。 它的实现步骤如下:
- 在未排序序列中找到最小值 , 放在排序序列的起始位置;
- 从剩余未排序序列中继续寻找最小值 , 放在已排序序列的末尾;
- 重复第二步 , 直到所有元素排序完毕 。
(1)复杂度
算法复杂度分为时间复杂度和空间复杂度 , 空间复杂度是程序在运行过程中占用了多少的内存 , 时间复杂度是算法运行时间的度量 。
- 程序执行时间和执行次数成正比;
- 时间复杂度是程序执行次数的最高价;
- 用大O表示时间复杂度 , 其是表示代码执行时间随数据规模增长的变化趋势 , 也称渐进时间复杂度 , 简称时间复杂度;
- 空间复杂度的衡量方式和时间复杂度一样 。
import datetime as dtstart=dt.datetime.now()'''执行程序'''end=dt.datetime.now()elapsed=end-start
(2)逻辑思维能力在理解排序的原理时 , 大脑会抽象形成排序的动态过程 , 抽象这一过程不仅是对大脑逻辑思维能力的锻炼 , 同时也能寻找到新的逻辑方法 。
编程实践Python中是有现成的排序方法的 。 根据这 , 我们可以复习下列表的两个排序函数 。
import numpy as npla=list(np.random.randint(0,100,20))la.sort(key=lambda x: np.sin(x),reverse=False)#key是排序的条件;默认升序 , reverse表示是否反转;不返回任何值 , 更改原列表sorted(la,key=lambda x: np.sin(x)),reverse=False) #不更改原列表 , 返回排序后的列表
(1)常规方法常规方法就是文章前面提到的逻辑 , 通过双层循环来对序列进行排序 。 在这种方法中可以好好理解下交换赋值法
import numpy as npla=list(np.random.randint(0,100,20))def sort_select_one(la):for i in range(len(la)-1):for j in range(i+1,len(la)):if la[i]>la[j]:la[i],la[j]=la[j],la[i] #理解交换赋值法法 , 解释器从右向左计算 , 然后链式赋值else:continuereturn lasort_select_one(la)
(2)自定义方法我们可以先自定义一个寻找最小值和其索引的函数 , 然后再将对序列进行第二层循环变更为函数调用 。 通过此法可以掌握自定义函数的调用 , 以及传递参数的理解 。
import numpy as npla=list(np.random.randint(0,100,20))#自定义计算最小值的函数def min_value(la):min_value=http://kandian.youth.cn/index/np.infmin_index=np.inffor i,j in enumerate(la):if j
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 蓝色海洋|这座无人小岛遍布三千多万件“致命物品”,我们正在亲手毁掉蓝色海洋……
- 淡蓝色的记忆|央视晒九部新片海报,杨幂童瑶入镜,46岁的人气男星只有背影
- 中国天气网|台风蓝色预警!“海神”将于明日凌晨进入吉林省境内
- 过膝靴@美女街拍:蓝色牛仔裤搭配过膝靴,满满的冷艳气场啊
- 蓝色星晨|继续打磨14nm!英特尔下一代桌面处理器明年Q1发布
- #黄圣依#黄圣依晒和姐姐们合影,杨澜穿蓝色礼服美颜下很大气,吴昕又美了
- 守不住的空城|蓝色的无袖连衣裙,气质的v领看上去精致又迷人
- 钱江晚报·小时新闻|蓝色保时捷在高速被拦!宁波小伙苦苦哀求,一查背后……
- 淡蓝色的记忆|《元气满满的哥哥》:王耀庆超短裤爆笑~胡军:掀开被子就来了吧
- 淡蓝色的记忆|《在劫难逃》孙晓萌才是系列杀人案的幕后主使赵彬彬是执行者?