- 博客(15)
- 收藏
- 关注
原创 排序算法——快速排序【未写完】
1. 在一个无序数组中取一个数key,每一趟排序的最终目的是: 让key左边的所有数都比key小,让key右边的所有数都比key大【假设进行升排序】也就是说,无论key的左边还是右边是否有序,key都到了它在整个数组有序时,应该在的位置上,对于key来说,他已经有序了, 即每次排序都会固定好一个数。2.接着,再对key的左右区间进行单趟排序,直到每个数都到达它该到的位置上,即整个数组有序。快速排序:通过多次的比较与交换来完成排序,而这个过程又被分为多次重复单趟排序。
2023-05-01 23:32:14 164
原创 在Python中使用sort方法时,需要注意的事项
今天在编写代码时,在使用sort方法对序列进行排序时,遇到了一些特殊情况,才知道有这些坑。需要注意的是:调用sort方法是没有返回值的,它是在内存中对可变序列进行排序。在调用sort之前,去调用其他的方法,运行时就会报错。因此在使用sort方法时需要注意。
2023-04-29 22:09:38 257
原创 排序算法——简单选择排序
每走一趟,都在待排序的元素中选择关键字最小【或最大】的元素加入有序子序列,如果数组中有n个元素,若进行简单选择排序,只需走n-1趟就可以,因为如果只剩最后一个的话,就不需要再选择最小【或最大】的元素了。每次选择最小【或最大】的元素,添加在前面的有序序列中。【绿色代表有序序列,橘色代表待排序序列】
2023-04-28 21:55:38 116
原创 Python第三方库——numpy【详细】
此外,它也针对数组运算提供大量的数字函数。机器学习涉及到大量对数组的变化和运算,numpy就成为必不可少的工具之一。numpy的主要对象是多维数组 Ndarray,在numpy中维度Dimensions叫做轴Axes,轴的个数叫做秩Rank。2. 傅立叶变换和用于图形操作的例程【所谓例程,就是某个系统对外提供的功能接口或服务的集合】1.使用dtype函数查看数组的数据类型,并且在创建数组时,可以使用dtype参数进行数据类型转换。6.使用full函数,创建任意大小的数组并填充任意数字。
2023-04-28 18:29:42 4901
原创 排序算法——冒泡排序
通过相邻两个数的比较,将较大的数放在最后面,每一趟确定一个数的最终位置,重复这个过程,直到序列有序。,就是一种最基础的交换排序。
2023-04-27 22:57:05 74
原创 Python第三方库——shutil
os模块提供了对文件和文件夹的一般常用操作,而shutil则是对os的补充,提供了复制、移动、删除压缩、解压等操作。需要注意的是,shutil模块对压缩包的处理是调用zipfile或tarfile这两个模块来进行的。zipobj.extractall() 将压缩包中的所有文件,解压出来。zipobj.extract() 将压缩包中的单个文件,解压出来。zipobj.namelist() 读取压缩包中的文件信息。注:无论被删除的文件下是否有子文件,它都能删除,因此。
2023-04-26 11:30:36 244
原创 Python第三方库——os
os.walk() 传入一个path,获取每个层文件夹下的文件路径、文件夹列表、文件列表。os.listdir() 直接返回指定路径下,文件和文件夹组成的列表。os.path.basename()返回绝对路径下的文件名。注意:如果传入的路径是文件夹,不管他多大,返回的都是0。os.path.dirname()返回文件的绝对路径。3. 判断某个文件夹是否存在:os.path.exists()os.path.isdir()判断是否为文件夹。os.path.isfile()判断是否为文件。
2023-04-26 10:54:56 399
原创 排序算法——直接插入排序
上图中,第一行为待排序的数组,分割线后的表格中,每一行都代表一次排序后的结果,其中绿色代表有序的序列,橘色代表待排序的序列。注:这个版本的代码,是写代码写嗨了,写成面向对象版本的了,如果想看简化版,最下面有。:使用的是双层循环,外层循环对除了第一个元素之外的所有元素进行遍历, 内层循环。:将一个记录插入到已经排序好的有序表中,从而得到一个新的、记录增1的有序表。从上图中,我们可以得出,直接插入排序是具有。对当前元素前面有序表进行待插入位置查找,并进行移动。,对于少量元素的排序,这是一个很有效的算法。
2023-04-25 23:02:02 67
原创 Python第三方库——json
dumps:对python对象进行操作,将python对象编码成json字符串。loads:对python对象进行操作,将json字符串解码成python对象。dump是把python对象转换成json对象生成一个fp的文件流,和文件相关。loads和load的区别同上类似,加上s的方法是用来处理字符串类型的,不加s的方法是用来处。dumps是把python对象转换成json对象的一个过程,生成的是字符串。json是python内置库,主要功能是将序列化数据从文件里读取出来或存入文件中。
2023-04-25 11:00:00 892
原创 Python第三方库——tqdm
tqdm是一个快速、可扩展的Python进度条,说白了就是在终端运行时,显示程序的执行进度。可在Python长循环中添加一个进度提示信息,用户只需要封装任意迭代器。
2023-04-25 10:40:51 190
原创 Python第三方库——glob
glob是python自带的一个文件操作相关模块,可用于查找符合自己目的的文件,类似于Windows下的文件搜索。iglob:获取一个生成器对象,使用他可以逐个获取匹配的文件路径名与glob不同,glob。glob:返回所有匹配的文件路径列表,该方法需要一个参数用来指定匹配的路径字符串。(字符串可以为绝对路径,也可以为相对路径),其返回的文件名只包括当前目录里的文件。方法是同时获取所有的匹配路径,而iglob一次只获取一个匹配路径。然后再使用通配符?只能匹配到1.txt,而无法匹配到10.txt。
2023-04-25 10:28:34 1174
原创 算法——递归
如果存在一个整数 x 使得 n == 2^x ,则认为 n 是 2 的幂次方。除去1这个特殊的情况,其他的各种情况都可以通过递归来判断该数是否为2的幂次方,判断的方式,就是通过除以2来不断的缩小范围,直到满足结束条件。如果不是2的幂次方,那么它就不能够一直被除到2,当他一直被除到小于2时,那么就能判断出,它不是2的幂次方。如果是2的幂次方,那么它就能够一直被除到2【注意:此时,先排除掉1的这种特殊情况】2.提取重复的逻辑,不断的去缩小问题的规模【如果没有这个,递归个寂寞】解释:24 = 16。
2023-04-24 23:04:20 131
原创 算法——枚举
根据提出的问题枚举出所有可能的状态,并用问题给定的约束条件进行检验,判断那些状态是需要的,那些是不需要的,能够使得命题成立的状态,即为其解。如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组。解释:一共有 4 个好三元组:[(3,0,1), (3,0,1), (3,1,1), (0,1,1)]。给你一个整数数组 arr ,以及 a、b 、c 三个整数。输入:arr = [3,0,1,1,9,7], a = 7, b = 2, c = 3。
2023-04-24 22:14:31 177
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人