- 博客(8)
- 资源 (16)
- 收藏
- 关注
原创 排序算法python实现汇总
目录01冒泡排序02快速排序03简单插入排序 04希尔排序05简单选择排序 06归并排序07计数排序08桶排序09基数排序10堆排序01冒泡排序1、比较相邻的元素。如果第一个比第二个大,就交换它们两个;2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;3、针对所有的元素重复以上的步骤,除了最后一个;重复步骤1~3,直到排序完成。class Solution: def bubble...
2020-07-30 00:09:35 238
原创 剑指offer-题目-思路-python实现21-30
21题目.栈的压入、弹出输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路:用一个栈来存储出栈的值,如果遇到出栈的值和入栈的值相等或者临时栈的值和入栈的值相等,就去除里面的值,最后辅助栈和弹出序列都为空,则满足条件假设栈为a,出栈为b,构
2020-07-26 20:06:43 199 1
原创 剑指offer-题目-思路-python实现11-20
11题目.二进制中1的个数输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。例如,9表示1001,因此输入9,输出2。思路:如果整数不等于0,那么该整数的二进制表示中至少有1位是1。1、若这个数最右一位是1,那么该数减去1后,最右边一位变成了0,其他位不变。2、若最右一位是0,最右边的1在第m位,那么该数减去1,第m位变成0,m右边的位变成1,m之前的位不变。综上,一个整数减去1,都是把最右边的1变成0,如果它后面还有0,那么0变成1。把一个整数减去1,与该整数做位运算
2020-07-26 19:19:33 191
原创 剑指offer-题目-思路-python实现1-10
1题目:二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:类似于二分查找,取右上角的元素col=len(array)-1,row=0,如果该元素小于目标元素,col-1向左移动,该元素大于目标元素,row+1向下移动,若相等,则找到目标元素,若不等,则返回-1。class Solution: def find(...
2020-07-26 18:51:47 180
原创 pandas apply多线程实现
目录一、多线程化选择二、并行化思想三、多线程化应用参考网址一、多线程化选择 并行化一个代码有两大选择:multithread 和 multiprocess。 Multithread,多线程,同一个进程(process)可以开启多个线程执行计算。每个线程代表了一个 CPU 核心,这么多线程可以访问同样的内存地址(所谓共享内存),实现了线程之间的通讯,算是最简单的并行模型。 Multiprocess,多进程,则相当于同时开启多个 Python 解释器,每个解...
2020-07-18 23:09:02 7868
原创 最小的k个数python实现
一、问题:最小的K个数输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。二、解题思路思路1:最简单的方案,对数组进行排序,取最小的k个思路2:借鉴快速排序的思想,找partition的基准点povit,比较povit和k值的大小思路3:大数据处理的思想,创建一个大小为k的数据容量,如果容器未满,直接存入容器中,如果容器已满,和最大值进行比较,替换思路4:构建堆,返回最小的k个元素三、程序实现impor
2020-07-15 00:42:07 1420
原创 python堆实现 heapq
1、堆的定义 堆的定义:堆分为两种,大根堆和小根堆是一颗每一个节点的键值都不小于(大于)其孩子节点的键值的树。无论是大根堆还是小根堆(前提是二叉堆)都可以看成是一颗完全二叉树。2、python heapq模块heapq相关函数:'heapify':将一个列表转化为堆 (Transform list into a heap)'heappop':pop最小的item,保持堆不变(Pop the smallest item off the heap, maintaining the ..
2020-07-15 00:17:05 357
原创 RecursionError: maximum recursion depth exceeded in comparison
写递归时报错:RecursionError: maximum recursion depth exceeded in comparisonclass Solution: def partition(self,a,left,right): pivot=left # 划分参考数索引,默认为第一个数为基准数,可优化 while (left <right): while (left<right and a[right]>=a[p
2020-07-13 23:11:11 527
女程序员后来都去做什么了
2023-12-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人