
python
妙手书生2016
爱好编程与论文写作
展开
-
二分查找算法-数据结构-代码实现
目录二分查找算法介绍:算法实现过程:算法前提:python代码及测试案例:二分查找算法介绍:二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。算法实现过程:首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查原创 2020-12-10 22:38:21 · 459 阅读 · 0 评论 -
力扣 (LeetCode) - 排序-刷题-面试题 976-三角形的最大周长
题目描述:给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回0。示例 1:输入:[2,1,2]输出:5示例 2:输入:[1,2,1]输出:0示例 3:输入:[3,2,3,4]输出:10示例 4:输入:[3,6,2,3]输出:8提示:3 <= A.length <= 100001 <= A[i] <= 10^6题目解析:1...原创 2020-12-09 22:51:32 · 410 阅读 · 1 评论 -
力扣 (LeetCode) - 排序-刷题-面试题 350-两个数组的交集 II
目录题目描述:解题分析:我的答案:题目描述:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。我们可以不考虑输出结果的顺序。进阶:如果给定的数组已经排好序呢?你将如何优化你的算..原创 2020-12-08 10:41:24 · 366 阅读 · 2 评论 -
力扣 (LeetCode) - 排序-刷题-面试题 1498-满足条件的子序列数目(9行代码解决)
目录题目描述:结题分析:我的答案:题目描述:给你一个整数数组 nums 和一个整数 target 。请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的 非空 子序列的数目。由于答案可能很大,请将结果对 10^9 + 7 取余后返回。示例 1:输入:nums = [3,5,6,7], target = 9输出:4解释:有 4 个子序列满足该条件。[3] -> 最小元素 + 最大元素 <= target (3 +.原创 2020-12-07 20:55:52 · 486 阅读 · 0 评论 -
力扣 (LeetCode) - 排序-刷题-面试题 1630- 等差子数组(9行代码解决)
目录题目描述:解题思路:我的答案:题目描述:如果一个数列由至少两个元素组成,且每两个连续元素之间的差值都相同,那么这个序列就是 等差数列 。更正式地,数列 s 是等差数列,只需要满足:对于每个有效的 i , s[i+1] - s[i] == s[1] - s[0] 都成立。例如,下面这些都是 等差数列 :1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9下面的数列 不是等差数列 :1, 1, 2, 5, 7给你一个由 n 个整数组成的数组 num原创 2020-12-06 10:33:23 · 194 阅读 · 0 评论 -
力扣 (LeetCode) - 排序-刷题-面试题 1640-能否连接形成数组
目录题目描述:思路分析:我的答案:题目描述:给你一个整数数组 arr ,数组中的每个整数 互不相同 。另有一个由整数数组构成的数组 pieces,其中的整数也 互不相同 。请你以 任意顺序 连接 pieces 中的数组以形成 arr 。但是,不允许 对每个数组 pieces[i] 中的整数重新排序。如果可以连接 pieces 中的数组形成 arr ,返回 true ;否则,返回 false 。示例 1:输入:arr = [85], pieces = [[85]]输出:.原创 2020-12-05 23:20:32 · 292 阅读 · 0 评论 -
力扣 (LeetCode) - 排序-刷题-面试题 56-合并区间
目录题目描述:解题思路:我的答案:题目描述:示例 1:输入: intervals = [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例2:输入: intervals = [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。注意:输入类型已于2019年4月15日更改。 请重置.原创 2020-12-03 22:15:12 · 249 阅读 · 0 评论 -
力扣 (LeetCode) - 排序-刷题-面试题 16-16--部分排序
目录题目描述:我的答案:解题思路:评价:题目描述:给定一个整数数组,编写一个函数,找出索引m和n,只要将索引区间[m,n]的元素排好序,整个数组就是有序的。注意:n-m尽量最小,也就是说,找出符合条件的最短序列。函数返回值为[m,n],若不存在这样的m和n(例如整个数组是有序的),请返回[-1,-1]。示例:输入: [1,2,4,7,10,11,7,12,6,7,16,18,19]输出: [3,9]提示:0 <= len(array) <= 1000000原创 2020-12-03 20:51:58 · 420 阅读 · 0 评论 -
选择排序(排序算法)-数据结构-代码实现及代码注释
目录1、算法简介2、算法性能3、算法流程4、python代码实现及注释1、算法简介选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。2、算法性能时间复杂度选择排序的交换操作介于 0 和 (n - 1)次之间。选择排序的原创 2020-12-03 11:22:58 · 531 阅读 · 0 评论 -
计数排序(排序算法)-python代码及注释-包含测试案例
目录1、计数排序简介2、说明3、算法过程4、python代码1、计数排序简介计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。[1]当然这是一种牺牲空间换取时间的做法,而且当O(k)>O(n*log(n))的时候其效率反而不如基于比较的排序(基于比较的排序的时间复杂度在理论上的下限是O(n*log(n)), 如归并排...原创 2020-12-03 09:53:46 · 181 阅读 · 0 评论 -
归并排序-代码及测试案例-python实现包含注释-原理介绍
目录1、归并排序原理介绍2、归并排序算法步骤3、python代码及注释1、归并排序原理介绍归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。2、归并排序算法步骤第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列第二步原创 2020-12-01 21:02:29 · 211 阅读 · 0 评论 -
快速排序算法(冒泡排序算法的改进)-递归实现-数据结构-python实现及测试实例
目录快速排序算法介绍算法原理介绍方案1算法原理介绍2python函数实现及测试案例快速排序算法介绍快速排序其实是在冒泡排序的基础上做出的一个改进.。冒泡排序看另外一篇博客:https://blog.youkuaiyun.com/weixin_36602742/article/details/110244894快速排序算法利用的是一趟快速排序,基本内容是选择一个数作为准基数,然后利用这个准基数将遗传数据分为两个部分,第一部分比这个准基数小,都放在准基数的左边,第二部分都比这个准基数大,放.原创 2020-11-28 23:32:46 · 673 阅读 · 0 评论 -
python 元祖-列表-字典-排序及其在leetcode题目中的应用
目录Python中元祖-列表以及字典的创建和介绍元祖:列表:字典:Python中内置排序函数sort()以及sorted()函数介绍使用sort排序使用sorted()排序sort()以及sorted()函数中key参数的应用对复杂的元组排序根据字典的value排序leetcode中的应用242. 有效的字母异位词解决方案Python中元祖-列表以及字典的创建和介绍 元祖: 在Python中用小括号()创建()代表tuple元祖数据类型,原创 2020-11-28 10:51:39 · 480 阅读 · 0 评论 -
数据结构-Python-排序-除法-整除-非整除-保留小数位数
目录摘要:背景:问题描述:解答方案答案解析:摘要:本文主要涉及数据结构中的排序算法,以及Python中的除法问题,保留特定小数位数的问题背景:leetcode第1491题:去掉最低工资和最高工资后的工资平均值问题描述:给你一个整数数组salary,数组里每个数都是 唯一的,其中salary[i] 是第i个员工的工资。请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。示例 1:输入:salary = [4000,300...原创 2020-11-27 22:05:11 · 781 阅读 · 0 评论 -
数据结构--排序--冒泡排序BubbleSort--python语言描述
数据结构排序冒泡排序1、描述:冒泡排序是两两比较待排序记录的关键字,如果次序相反则交换两个记录的位置,直到序列中所有记录有序排列。若是按照升序排列,每趟将序列元素中最大值元素交换到最后的位置,就像气泡从水里面冒出来一样。2、python代码及注释如下:# -*- coding: utf-8 -*def BubbleSort(a):#定义冒泡排序函数 Flag='True' # 检测标志 i=1 # 设交换次数为i=1 while i<len(a) and原创 2020-11-27 20:05:19 · 424 阅读 · 2 评论 -
数据结构--排序--希尔排序ShellSort--python语言描述
数据结构排序希尔排序1、描述:将一条待排序的记录按照其关键字值的大小插入已排序记录序列中的正确位置,依次重复,直到全部记录都插入完成。2、python代码如下:def ShellSort(b,d): for k in d: j=k while j<len(b): p=j m=j while m>=k: if b[p]<b[m-原创 2020-11-27 18:50:16 · 137 阅读 · 0 评论 -
数据结构--排序--插入排序--python语言描述
数据结构排序插入排序1、描述:将一条待排序的记录按照其关键字值的大小插入已排序记录序列中的正确位置,依次重复,直到全部记录都插入完成。2、python代码如下:# -*- coding: utf-8 -*#插入排序的函数,a为list类型def InsertSort(a): for i in range(1,len(a)): p=i j=i-1 while j>=0: if a[p]<...原创 2020-11-26 22:44:03 · 188 阅读 · 0 评论 -
pyqt使用过程-卡顿解决-刷新界面pyqt4或者pyqt5都可以
对于执行很耗时的程序来说,由于PyQt需要等待程序执行完毕才能进行下一步,这个过程表现在界面上就是卡顿,而如果需要执行这个耗时程序时不断的刷新界面。那么就可以使用QApplication.processEvents(),那么就可以一边执行耗时程序,一边刷新界面的功能,给人的感觉就是程序运行很流畅,因此QApplicationEvents()的使用方法就是,在主函数执行耗时操作的地方,加入QApplication.processEvents()...原创 2020-08-09 15:15:34 · 2515 阅读 · 0 评论 -
PyQt的QString和python的string的区别
python的string和PyQt的QString的区别python string和PyQt的QString的区别 以下在Python2.6和PyQt4.4.4 for Python2,6环境下讨论: Python中有两种有关字符的类型:Python string object和Python Unicode object。主要使用Python string object进行数据输入转载 2017-12-28 19:59:30 · 2393 阅读 · 0 评论 -
python2.7+pyqt4+Eric6拷贝局域网其他电脑文件
###.py代码:# -*- coding: utf-8 -*-"""Module implementing zhangcopy."""import sysfrom PyQt4.QtCore import pyqtSignaturefrom PyQt4.QtGui import QDialog, QFileDialogfrom PyQt4.QtGui import QAppli原创 2017-12-28 20:18:51 · 691 阅读 · 0 评论 -
python 2 和python 3安装 pyautogui
环境:win 10原来是python2.7,想编写python控制键鼠的程序,要用到pyautogui这个模块,刚开始直接用pip install pyautogui,自动安装的是pyautogui0.9.42版本,但是导入的时候,显示有这个模块,编译会出错:SyntaxError: 'return' with argument inside generator。具体原来参考这个链接...原创 2019-05-13 15:28:30 · 2504 阅读 · 2 评论 -
python数据挖掘数据分析pandas的介绍及简单例子
pandas是python下最有力的数据挖掘和数据分析的工具之一,支持类似于SQL的数据库的增、删、查、改,并且带有丰富的数据处理函数,支持时间序列的分析功能,支持灵活处理缺失数据。pandas基本的数据结构是Series和DataFrame,series就是序列,类似于一维数组,dataframe相当于一张二维的表格,类似于二维数组,它的每一列都相当于一个series,为了定位series中的元原创 2017-02-15 21:39:19 · 7142 阅读 · 1 评论 -
python读取excel数据
import xlrdfrom xlrd import open_workbookdef readsheet(s,row_count=-1,col_count=-1): nrows=s.nrows ncols=s.ncols row_count=(row_count if row_count>0 else nrows) col_count=(col_count原创 2016-11-14 20:46:29 · 809 阅读 · 0 评论 -
Python的定时器
在实际应用中,我们经常需要使用定时器去触发一些事件。Python中通过线程实现定时器timer,其使用非常简单。看示例:import threadingdef fun_timer(): print('Hello Timer!')timer = threading.Timer(1, fun_timer)timer.start()输出结果:Hello Timer!Process fi转载 2018-01-12 22:14:21 · 623 阅读 · 0 评论 -
python连接mysql数据库,传递参数格式问题
方法1: 用%s传参code:sqli73 = "SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_NAME= %s "cur.execute(sqli73 , (strtext70,))如果 这样写:cur.execute(sqli73 , strtext70)会报错。方法2:用.format传递参数传递带引号原创 2018-01-03 16:11:11 · 7475 阅读 · 0 评论 -
Python2.7-pyqt4-eric6 读取标准文本框内容,选择文件夹并显示绝对路径
代码如下:# -*- coding: utf-8 -*-"""Module implementing zhangcopy."""import sysfrom PyQt4.QtCore import pyqtSignaturefrom PyQt4.QtGui import QDialog, QFileDialogfrom PyQt4.QtGui import QApplicati原创 2017-12-27 22:33:40 · 1743 阅读 · 0 评论 -
python打包成exe的两种方法对比
我经常用python写些脚本什么的,有时候脚本写完以后,每次运行都得在IDE打开在运行,很麻烦,所以经常将python编译成exe.SO...有了一点经验,在这和大家分享一下。 python 打包成exe 主要有两种,一种是py2exe,另一种便是pyInstaller,之前我是用py2exe的,但是我后来发现py2exe存在问题:1,打包好的 exe只能在相同的系统下运行,比如你在原创 2016-11-24 10:05:44 · 9601 阅读 · 0 评论 -
python做数据拟合
项目中有涉及趋势预测的工作,整理一下这3种拟合方法:1、线性拟合-使用mathimport mathdef linefit(x , y): N = float(len(x)) sx,sy,sxx,syy,sxy=0,0,0,0,0 for i in range(0,int(N)): sx += x[i] sy +=原创 2016-12-05 19:38:49 · 11001 阅读 · 3 评论 -
python的10款最好的IDE
Python 非常易学,强大的编程语言。Python 包括高效高级的数据结构,提供简单且高效的面向对象编程。Python 的学习过程少不了 IDE 或者代码编辑器,或者集成的开发编辑器(IDE)。这些 Python 开发工具帮助开发者加快使用 Python 开发的速度,提高效率。高效的代码编辑器或者 IDE 应该会提供插件,工具等能帮助开发者高效开发的特性。这篇文章收集了一些对开发者非常有原创 2016-11-18 14:05:07 · 1196 阅读 · 0 评论 -
PyQt5+pycharm安装教程
1.下载PyQt官方网站:http://www.riverbankcomputing.com/software/pyqt/download5我的操作系统是64位的,安装的是Python3.4.3,所以我选择下载:PyQt5-5.4.1-gpl-Py3.4-Qt5.4.1-x64.exe单击安装即可。PyQt5安装完后,需要修改系统变量QT转载 2016-11-30 20:58:46 · 1039 阅读 · 0 评论 -
python中的tkinter button案例
from tkinter import *import labelmaster = Tk()def callback(): label.labeltest() print("调用")b=Button(master, text="调用", command=callback)b.pack()mainloop()原创 2016-11-29 21:57:01 · 777 阅读 · 0 评论 -
python学习笔记之tkinter中的label
from tkinter import *longtext='''多行 文本'''master = Tk()master.title("label学习")w0=Label(master,text=longtext)w0.pack()photo=PhotoImage(file="b.png")w=Label(master,image=photo)w.pack(原创 2016-11-29 21:12:48 · 13353 阅读 · 2 评论 -
python tkinter label编写案例分析
#!/usr/bin/Python#coding=utf-8from Tkinter import *#导入tk模块top = Tk()#初始化Tktop.title('label test')#标题显示为label testlabel = Label(top, text = 'this is my first label')#创建一个label,它属于top窗转载 2016-11-29 19:48:06 · 895 阅读 · 0 评论 -
python进行KMeans聚类算法raise ImportError('[joblib] Attempting to do parallel computing ' ImportError: [jo
import pandas as pdfrom sklearn.cluster import KMeansif __name__=='__main__': inputfile = 'data.xlsx' outputfile = 'data1.xlsx' k = 3 iteration = 500 data = pd.read_excel(inputfi原创 2016-11-28 21:29:19 · 3233 阅读 · 0 评论 -
python调用excel数据并显示
python安装xlrd第三方库(安装步骤在上一篇有讲过)。然后通过xlrd库调用excel数据。import xlrdfname = "F:\Python\matrix\matrix.xlsx"bk = xlrd.open_workbook(fname)#open_workbookshxrange = range(bk.nsheets)#rangeprint(shxrange)tr原创 2016-11-11 16:18:26 · 9160 阅读 · 0 评论 -
python将程序打包成exe
两种方法,首先尝试了py2exe,安装好了,然后打包的时候总是报错,在网上搜了,好多人也建议用pyinstaller,随后自己也下载了pyinstaller包安装了,然后让安装pypiwin32,页下载安装好了,最后调试说找不到这个包,可能是路径不对,正好我有pip包,所以直接pip install,所以我建议大家安装包时最好用pip install,比较方便。我用的python3.5.2,pyi原创 2016-11-24 22:00:45 · 455 阅读 · 0 评论 -
pyinstaller的使用python 打包程序
PyInstaller是一个能将Python程序转换成单个可执行文件的程序, 操作系统支持Windows, Linux, Mac OS X, Solaris和AIX。并且很多包都支持开箱即用,不依赖环境。环境为windows7操作系统,python2.7.8 virtual environment官网:https://github.com/pyinstaller/pyinstall原创 2016-11-24 22:48:01 · 8782 阅读 · 0 评论 -
python求两个数字的最大公约数(辗转相除法)
def gcd(a,b): while b: r = a%b a = b b = r return a print(gcd(15,25))辗转相除法介绍:设两数为a、b(a>b),求a和b最大公约数(a,b)的步骤如下:用a除以b,得a÷b=q......r1(0≤r1)。若r1=0,则(a,b)=b;若r1≠0,则再用b除原创 2017-02-16 16:00:27 · 7150 阅读 · 1 评论 -
python向mysql数据库插入汉字出现乱码问题
1 在mysql数据库服务器上新建数据库的时候,需要设置数据库的字符编码为utf82 在连接数据库的时候,加个参数,说明数据库那边的字段类型一致,charset='utf8'。 大概就是这样:conn =MySQLdb.connect(host="127.0.0.1",user="nimei",passwd="nimei",db="nimei"原创 2017-12-23 18:57:10 · 1088 阅读 · 0 评论 -
pycharm当中,如何导入python2或者python3环境
step 1step 2step 3OK ,环境添加完毕,此环境为python 2.7.17(python 3可按此步骤添加),如此一来,我们可以灵活的再此处切换所有的编译环境。转载 2017-12-22 13:03:37 · 539 阅读 · 0 评论