![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pyhon
文章平均质量分 72
十三亿分之一
这个作者很懒,什么都没留下…
展开
-
冒泡排序(Python)
冒泡排序1. 算法思路对于待排序数列,将其元素依次两两进行比较,若第一个元素大于第二个元素,将两个元素进行交换,不断遍历待排序数列并重复比较交换操作直至在一趟序列遍历中没有发生元素交换,完成排序。2. 算法实现在经过一次序列遍历后,最后的元素一定是此次遍历序列中最大的数,因此在每次遍历时可以不包含上一次遍历的最后一个元素,去除不必要的以减少程序运行时间。def bubble_sort(arr): arr_len = len(arr) if arr_len < 2:原创 2021-01-07 11:02:17 · 289 阅读 · 0 评论 -
线性时间的排序算法
前言在排序的最终结果中,各元素的次序依赖于它们之间的比较。我们把这类排序算法称为比较排序,像归并排序,快速排序等都是如此。任何比较排序的时间复杂度最小为O(nlgn)。计数排序计数排序是通过运算而不是通过比较来确定排序顺序的算法,时间复杂度为O(n)。当然有如此优秀的运算时间自然也有其缺点,否则所有排序直接用计数排序得了。计数排序在运算时占用额外的内存空间,通常只对位数较小的数字排序时使用计...原创 2019-01-24 19:50:23 · 683 阅读 · 0 评论 -
快速排序(Python)
快速排序与归并排序一样,快速排序也使用分治思想,下面是对一个数组A[p…r]进行快速排序的三步分治过程:分解: 数组A[p…r]被划分为两个子数组(可能存在空数组)A[p…q-1和]A[q+1…r],使得A[p…q-1]中的每一个元素都小于等于A[q],而A[q]也小于等于A[q+1…r]中的每个元素。其中,计算下标q也是划分过程的一部分。解决: 通过递归调用快速排序,对子数组A[p…q-...原创 2019-01-22 12:07:12 · 177 阅读 · 2 评论 -
堆排序(Python)
堆排序堆堆排序算法(以大顶堆为例)维护堆性质的函数堆排序使用一种被称为堆的数据结构进行排序,时间复杂度为O(nlogn)。堆(二叉)堆是一个数组,它可以被看成一个近似的完全二叉树。树上的每一个结点对应数组中的一个元素。除了最底层外,该树是完全充满的,而且从左向右填充。二叉堆可以分为两种形式:大顶堆和小顶堆大顶堆:每个结点的值都大于或等于其左右孩子结点的值,堆中最大的元素存放在根节点。小顶...原创 2019-01-21 19:45:43 · 227 阅读 · 0 评论 -
插入排序和希尔排序(Python)
插入排序和归并排序插入排序归并排序本文基于&amp;amp;amp;lt;&amp;amp;amp;lt;算法导论&amp;amp;amp;gt;&amp;amp;amp;gt;第二章插入排序对于少量元素排序,插入排序是一个有效的算法.插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。C++代码:void insertionSort(int a[], int s){ int i,原创 2019-01-09 21:08:52 · 835 阅读 · 0 评论 -
归并排序(Python)
归并排序算法思路归并排序遵循分治的思想,将待排序数列分为两个有序子数列,然后合并两个有序子数列为一个完整有序数列,每个子数列也是通过相同的方式变得有序。算法实现合并过程:设置指针 index 指向待排序数列的起始位置,设置两个指针 index_l、index_r 分别指向两个子数列的起始位置。比较 index_l、index_r 所指向的元素,将较小的元素写入 index 指针所指的位置,并将 index 指针以及指向较小数列元素的指针后移。重复步骤 2 知道某一子数列指针到达序列末尾。将原创 2021-01-07 11:11:21 · 409 阅读 · 0 评论 -
选择排序(Python)
选择排序算法思路从待排序数列中选择最小的元素,将它与数列的第一个元素交换位置。再从数列剩下的元素中选择出最小的元素,将它与数组的第二个元素交换位置。不断进行这样的操作,直到将整个数组排序。算法实现设置标志位记录待排序数列中最小元素的下标,每次遍历完成后都将最小元素放在已排序数列的末尾。def selection_sort(arr): arr_len = len(arr) if arr_len < 2: return for i in rang原创 2021-01-07 11:05:01 · 572 阅读 · 0 评论 -
python爬虫(2)---虎扑电竞文章信息爬取
虎扑电竞信息爬取1. 网页分析2. 代码1. 初始准备2.排坑,文章标题提取3. 完整代码今天我们来爬取虎扑电竞英雄联盟区帖子的部分信息,提取文章的标题,作者,发布时间和文章链接信息,并将它们保存在csv文件中。1. 网页分析虎扑电竞英雄联盟区主页网址为:https://bbs.hupu.com/lol并发现其之后页面网址为:https://bbs.hupu.com/lol-2http...原创 2019-03-16 15:30:02 · 657 阅读 · 0 评论 -
python爬虫(1)---爬虫前备知识
爬虫前备知识URL网页HTTP请求过程请求1. 请求方法2. 请求的网址3. 请求头4. 请求体响应1. 响应状态码2. 响应头3. 响应体爬虫概述1. 获取网页2. 提取信息3. 保存数据4. 自动化程序参考书籍URLURL的全称为Universal Resource Locator ,即统一资源定位符。当我们访问任一网站时,浏览器上方都会有相应的链接,例如当我们进入百度首页是,上方的链接为...原创 2019-03-10 11:05:30 · 346 阅读 · 0 评论 -
python爬虫(3)---图片下载
python爬虫下载图片1.网页分析2.代码1.初始准备2.生成页面地址3.得到图片下载链接4.下载图片5.main函数1.网页分析今天要爬取的网址:https://unsplash.com/,这个网站的图片据我观察还是非常精致的。经过分析发现该网站使用ajax请求页面(AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。----菜鸟教程对ajax部分...原创 2019-02-28 18:53:40 · 214 阅读 · 0 评论 -
python爬虫---网易云音乐下载
python爬虫爬取网易云音乐1.实现功能2.具体实现1.下载歌曲2.获取歌曲idGithub代码获取:https://github.com/Godliness595/download_wangyi1.实现功能可以分别对歌名,歌手,歌单进行搜索,搜索歌曲和歌单会列出页面第一页所显示的所有歌曲或歌单及其id以供选择下载,搜索歌手会下载网易云音乐列表显示第一位歌手的所有热门歌曲。2.具体实现...原创 2019-02-12 11:17:43 · 10496 阅读 · 6 评论