自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 二分法搜索 - python

二分法搜索学习来源:b站 python分享站二分法搜索代码如下:def binary_search(li, val): # left right mid 都是索引值 left = 0 right = len(li) - 1 while left <= right: mid = (left + right) // 2 if li[mid] == val: # 直接找到,返回 return mid e

2021-08-02 23:47:09 146

原创 希尔排序 - python

希尔排序希尔排序时一种分组插入排序算法。首先取一个整数d1=n/2,将元素分为d1个组,每组相邻元素之间距离为d,在各组内进行直接插入排序;取第二个整数d2=d1/2,重复上述分组排序过程,直到di=1,即所有元素在同一组内进行直接插入排序。希尔排序每趟并不使某些元素有序,而是使整体数据越来越接近有序,最后一趟排序使得所有数据有序。例:取整数d = 9//2 = 4将元素分为4组组内进行直接插入排序归位取d = 4/2 = 2,分为两组,进行组内排序d=2归位后,再取d=2/2

2021-07-30 17:21:12 238

原创 排序方法小结 - python

排序方法小结快速排序、归并排序、堆排序三种排序算法的时间复杂度都是O(nlogn)一般情况下,就运行时间而言:快速排序 < 归并排序 < 堆排序三种排序算法的缺点:快速排序:极端情况下排序效率低归并排序:需要额外的内存开销堆排序:在快的排序算法中相对较慢...

2021-07-30 15:00:01 156

原创 归并排序 - python

归并排序此图片来源于网络:解决思路:如下图,列表被虚线分为两部分,左右两部分已排好序。列表最左边2记为low,最右边6为high,9为mid,左边箭头为i,右边箭头为j。比较i和j对应的元素大小,1小,把1拿出来,j右移,i对应的2小于此时j对应的3,2拿出来,i右移,再比较,依次进行。递归思想解决左右两边没有排好序的情况。代码:import random# 合并def merge(li, low, mid, high): i = low j = mid + 1

2021-07-30 11:23:57 132

原创 堆排序 - python

堆排序学习来源:b站 python分享站堆排序的过程:1、建立堆。2、得到堆顶元素,为最大元素3、去掉堆顶,将堆最后一个元素放到堆顶,此时可通过一次调整重新使堆有序。4、堆顶元素为第二大元素。5、重复步骤3,直到堆变空。用python内置模块实现堆排序,代码如下:# 内置模块 --- 堆排序import heapqimport randomli = list(range(100))random.shuffle(li)print(li)heapq.heapify(li

2021-07-30 09:40:17 82

原创 快速排序 - python

快速排序学习来源:b站 python分享站快速排序:首先,让列表第一个元素归位。如图,一个列表,两个箭头分别表示left和right,把5拿出来,right从右往左遍历把比5小的值移到左边,当right指向2时,2比5小,移到左边空位,然后left从左往右遍历,left指向7时,7比5大,移到右边空位,right开始左移,依次遍历,直到 left = right,即重合,此时把5放到重合处,左边的数都比5小,右边的数都比5大。5归位之后,列表同样分别对5的左右两部分进行归位,比如把2

2021-07-29 21:50:23 83

原创 插入排序 - python

插入排序学习来源: b站 python分享站插入排序:以下图为例开始时列表第一个元素看作是手里拿的牌(橙色),即5。摸下一张牌7,7比5大,放5右边,摸下一张4,此时5和7都比4大,5和7往右移,把4放在5和7的左边。依次遍历,完成排序。代码如下:...

2021-07-29 20:58:39 65

原创 选择排序 - python

选择排序学习来源: b站 python分享站简单版选择排序是每次从列表中遍历把最小元素拿出来存到新列表中。简单版直接调用min()函数,代码如下:# 简单版选择排序def select_sort_simple(li): li_new = [] for i in range(len(li)): min_val = min(li) li_new.append(min_val) li.remove(min_val) return

2021-07-29 10:32:31 71

原创 冒泡排序 - python

冒泡排序如下图所示:最一开始箭头指向下标为0的(第一个)元素7(第一幅图),和下一个元素比较,7比5大往上移,上移后7比4大继续上移,直到移到下标为4的位置,此时7比8小,不再上移,箭头移到下标为5的位置,继续和下一个元素比较,8比2大,上移,8比9小,箭头移动到9,9比1大,上移,此时9作为最大值就出现在了最上面(第二幅图)。接下来进行第二轮也是从最下面开始,依次比较,进行n-1轮后完成排序(n为列表长度,最后一个元素不需要比较了所以是n-1轮)(第三幅图)。 代码如下:# 冒泡排序def b

2021-07-28 16:56:37 98

原创 猜数字小游戏 - python

猜数字小游戏(学习来源:b站up主 程序员在思考)要求:输入1-1024之间的任意一位数,界面会提示输入的数字与系统生成的数字大小比较情况,直至猜中,并记录猜的次数。新知识:解决点鼠标和按回车调用函数冲突的问题,对函数传参event=None。inputVar.set("") # 输入框自动清空inputEntry.focus_set() # 输入框获得焦点root.bind(“< Return >”, 调用的函数名) # 回车键触发正则表达式的应用,判

2021-07-08 15:18:24 278 2

原创 抽奖小工具的设计(1)- python

抽奖小工具的设计(1)(学习来源:b站up主 程序员在思考)要求:界面中央显示手机号码,点击开始按钮开始滚动号码,再次点击停止,中奖结果显示当前中奖号码。此篇仅是界面样式的设计,具体功能实现请查看抽奖小工具的设计(2)思路:1. 显示出界面2. 显示要滚动的手机号码3. 显示按钮4. 显示中奖结果代码:from tkinter import *def do_Click(): print("button clicked")version = 1.0root = Tk

2021-07-07 22:42:59 140

原创 抽奖小工具的设计(2)- python

抽奖小工具的设计(2)(学习来源:b站up主 程序员在思考)要求:界面中央显示手机号码,点击开始按钮开始滚动号码,再次点击停止,中奖结果显示当前中奖号码。from tkinter import *import randomisScroll = False # 全局变量 是否滚动def do_Click(): global isScroll isScroll = not isScroll # 调用一次“按钮”就会在True和False之间进行一次切换 btu

2021-07-07 22:38:42 185

原创 零基础学Python课后实战第七章

零基础学Python课后实战第六章tipstips对象:对象是事物存在的实体,如一个人。通常将对象划分为两部分,即动态部分和静态部分。静态部分被称为“属性”,动态部分指的是对象的行为。类:是封装对象的属性和行为的载体。对象是类的实例。面向对象程序设计的三大基本特征:封装、继承和多态。封装是面向对象编程的核心思想,将对象的属性和行为封装起来,其载体就是类,类通常会对客户隐藏实现其细节,这就是封装的思想。继承:可以把平行四边形类看作是继承四边形类后产生的类,将类似于平行四边形的类称为子类,类似于

2021-05-26 21:10:49 2663

原创 零基础学Python课后实战第六章

零基础学Python课后实战第六章tips实战一:导演为剧本选主角一级目录一级目录一级目录tips格式化字符串:{:0>9s} 表示先是9个0,然后内容右对齐。例:a = ’ 编号:{:0>9s} ’b = a.format(‘7’)print(b)结果是: 编号:000000007{: . 2 f} :保留两位小数点实战一:导演为剧本选主角一级目录一级目录一级目录...

2021-05-20 14:57:37 2421

原创 零基础学Python课后实战第五章

零基础学Python课后实战第五章tips实战一:打印象棋口诀实战二:判断车牌归属地实战三:模拟微信抢红包实战四:显示实时天气预报tips正则表达式:\d 等价于[0-9],\d{8} :[0-9]扩展8次。match():从字符串的开始处进行匹配,如果在起始位置匹配成功,则返回match对象,否则返回none。search():整个字符串中搜索第一个匹配的值,如果匹配成功,则返回match对象,否则返回none。findall():在整个字符串中搜索所有符合正则表达式的字符串,并以列表形式返回

2021-05-18 15:24:59 2429 5

原创 零基础学Python课后实战第四章

零基础学python课后实战第四章一级目录二级目录三级目录一级目录二级目录三级目录

2021-05-14 17:27:40 1793 2

原创 零基础学Python课后实战第三章

零基础学Python课后实战第三章实战一:模拟支付宝蚂蚁森林的能量产生过程实战一:模拟支付宝蚂蚁森林的能量产生过程考察if…elif…多分支语句实现代码如下#模拟支付宝蚂蚁森林的能量产生过程print("查询能量请输入能量来源!退出程序请输入0")source = input("能量来源如下:\n生活缴费、行走捐、共享单车、线下支付、网络购票\n")if source == '生活缴费': print("100g")elif source == '行走捐': print("200

2021-05-12 21:36:20 3286

原创 零基础学Python课后实战第二章

零基础学Python课后实战第二章实战一实战二实战三实战四实战一题目代码如下money = input("欢迎使用XXX充值业务,请输入充值金额:\n")money_str = str(money)print("充值成功,您本次充值"+money_str,"元")运行结果欢迎使用XXX充值业务,请输入充值金额:100充值成功,您本次充值100 元实战二题目代码如下print(''' * * * * * * *

2021-05-11 16:47:55 627

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除