-
python插入排序的优化
当有序区间有大量数据时,搜索数据的插入位置会非常耗时。 1、插入排序算法总是从有序区间搜索插入位置,以此为切入点。 2、可以使用二分搜索方法快速确认待插入的位置,所以有一个优化版本的插入排序算法,也叫二分查找插入算法。 实例 def insert_sort2(data_list): ”’ 使用二分查找函数确定待插入元素在有序区间的插入位置 ”’ count=0 #统计循环次数 length = len(data_list) for i in r…
-
python插入排序的运行过程
为了保证插入后数据仍然有序,需要确定插入数据的位置。 1、将待排序的数据分为两个区间。 有序区间和无序区间。初始有序区间只包含一个元素,即数组的第一个元素,其他的是无序区间。 2、依次从无序区间中选择一个元素,在有序区间中找到合适的插入位置插入,确保排序区间的数据始终有序。 3、重复这个过程。 直到无序区间的元素为空,算法结束。 实例 #encoding=utf-8 def insert_sort(data_list): ”’ 无优化版 ”’ count=0 …
-
python选择排序算法的性能分析
1、选择排序只需要一个变量作为交换,所以空间复杂度是O(1),是原地排序算法。 2、选择排序在未排序区间选择最小值,与之前的元素交换。 对于值相同的元素,因为交换会破坏他们的相对公交车,所以是不稳定的排序算法。 例如4,1,4,2,5,这样的序列, 第一次选择后如下:1、4、4、2、5,此时顺序不变,第二次选择后如下:1、2、4、4、5,需要交换第一个4和2,所以两个4的相对顺序发生了变化,所以选择排序是一种不稳定的排序算法。 无论数据的初始状态如何,选择排序都需要在未排序元素中选择最小或最大元…
-
python冒泡排序算法的性能探究
1、执行效率,分为最小时间复杂度、最大时间复杂度和平均时间复杂度。 最小时间复杂度:很好计算,最好的情况就是数据一开始就是有序的,因此一次冒泡即可完成,时间复杂度为 O(n) 最大时间复杂度:也很好计算,最坏的情况就是数据一开始就是倒序的,因此进行 n-1 次冒泡即可完成,时间复杂度为 O(n^2) 平均时间复杂度,严格来说平均时间复杂度就是加权平均期望时间复杂度,分析的时候要结合概率认的知识,对于包含 n 个数据的数组,有 n! 种排序方式,不同的排列方式,冒泡排序的执行时间肯定是不同的,如果…
-
python单词大小写的方法整理
在字符串中,对其中单词部分进行大写的替换,是我们学习字符串必不可少的一门课程,本篇对单词中的大小写方法进行了整理。 1、面对字符串,如果想大写里面的首字母,只需要调用title()函数。 2、所有的字母大小写只需要调用upper()函数。 3、字符串首字母大写只需要调用capitalize()函数。 实例 str2 = “i love python” print(str2.title()) #单词首字母大写 pirnt(str2.upper()) #所有字母大写 print(str2.cap…
-
python字符串翻转的方法
在字符串的操作中,翻转也是我们常见的操作之一,本篇就其翻转的三种方法带来介绍。 1、最简单的方法是使用切片操作来实现翻转。 2、可以使用reduce函数来实现翻转。 3、在python3中,reduce函数需要从functools中导入。 实例 #方法1 strl = “hello world” print(strl[::-1]) #方法2 from functools import reduce print(reduce(lambda x,y:y+x,strl)) 每日分享到群里,或者推荐给朋…
-
python中的三种推导式介绍
1、列表推导式,在一个中括号里包含一个表达式。 old_list = [0,1,2,3,4,5] new_list = [] for item in old_list: if item % 2 == 0: new_list.append(item) print(new_list) 2、字典推导式,把[]改成了{},并且组成元素有key和value。 old_student_score_info = { “Jack”: { “chinese”: …
-
如何用python画月饼
1、环境安装。turtle自带所以不用单独安装。 2、创建一个月饼.py文件。 import turtle 3、定义pen函数,就是画笔。 t = turtle.Pen() 4、circle指令画出月饼形状。 for i in range(30): #使用for循环,可以把上面的图形重复绘制多次。直到绘制成一个园。 t.begin_fill() t.forward(200) #我们让画笔t朝着箭头方向移动200像素点的距离 t.circle(30,180) #…
-
python中PCA的处理过程
1、输入矩阵归一化处理。 2、计算样本协方差矩阵。 3、求解协方差矩阵指定的最大特征值对应特征向量。 4、确定转换矩阵,求解降维数据。 实例 #/usr/nom/env python # _*_coding:utf-8_*_ # @Time :2021/9/3 10:04 # @Author :A bigfish # @FileName :maindemo13.py # @Software :PyCharm import matplotlib.pyplot as plt …
-
python快速排序算法的使用
1、选择列表中最后一个元素最基准数N,小于N的放前,大于等于N的放后。 2、将前面的最后一个数字作为基准,同上放置。 3、直到每个部分的标记相等,即完成快速排序。 实例 def move_num(my_list, low, high): N = my_list[high] # 确定基数N move = low – 1 # 从左边减1开始 for i in range(low, high): if my_list[i] <= N: …