Python_算法汇总
1. 约瑟夫环:
# 约瑟夫环:共31个数,每隔9个删除一个,要求输出前15个号码 a=[x for x in range(1,31)] #生成编号
del_number = 8 #该删除的编号
for i in range(15):
print(a[del_number])
del (a[del_number])
del_number = (del_number + 8)%(len(a))
约瑟夫环:共31个数,每隔9个删除一个,要求输出前15个号码
2.斐波拉切数列:
class Fibs:
def __init__(self, n=10):
self.a = 0
self.b = 1
self.n = n
def __iter__(self):
return self
def __next__(self):
self.a, self.b = self.b, self.a + self.b
if self.a > self.n:
raise StopIteration
return self.a fibs = Fibs(100)
for each in fibs:
print(each) #------------------------------------------------------------ def fibo(num):
numList = [0,1]
for i in range(num - 2):
numList.append(numList[-2] + numList[-1])
return numList fibs=fibo(10)
for each in fibs:
print(each) #---------------------------------------------------------------- def fibo(n):
x, y = 0, 1 while(n):
x,y,n = y, x+y, n - 1
return x # print(fibo(1)) for i in range(1,10):
print(fibo(i)) #-----------------------------------------------------------------
斐波拉切数列(3种)
3.快排 / 快速排序:
def quickSort(num,l,r):
if l>=r:#如果只有一个数字时,结束递归
return
flag=l
for i in range(l+1,r+1):#默认以第一个数字作为基准数,从第二个数开始比较,生成索引时要注意右部的值
if num[flag]>num[i]:
tmp=num[i]
del num[i]
num.insert(flag,tmp)
flag+=1
quickSort(num,l,flag-1)#将基准数前后部分分别递归排序
quickSort(num,flag+1,r) num=[1,-2,4,7,6,3,2,3]
quickSort(num,0,7)
print(num)
快排
4.冒泡排序
#encoding:utf-8
l=[5,3,6,2,1,4,8,7,9]
for j in range(len(l)-1):
if l[j] > l[j+1]:
l[j],l[j+1] = l[j+1],l[j]
print(l)
冒泡排序
5.二分法查找
def BinarySearch(array,t):
low = 0
height = len(array)-1
while low < height:
mid = (low+height)/2
if array[mid] < t:
low = mid + 1 elif array[mid] > t:
height = mid - 1 else:
return array[mid] return -1 if __name__ == "__main__":
print BinarySearch([1,2,3,34,56,57,78,87],57)
二分法查找中间值
Python_算法汇总的更多相关文章
- 排序算法汇总(C/C++实现)
前言: 本人自接触算法近2年以来,在不断学习中越多地发觉各种算法中的美妙.之所以在这方面过多的投入,主要还是基于自身对高级程序设计的热爱,对数学的沉迷.回想一下,先后也曾参加过ACM大大小小的 ...
- 边缘检测matlab算法汇总
边缘检测matlab算法汇总 1. 基于一阶微分算子检测边缘图像 一阶微分边缘算子又称梯度边缘算子,它是利用图像在边缘处的阶跃性,及图像梯度在边缘去得极大值得特征性进行边缘检测. Sobel ...
- JavaScript 数据结构与算法之美 - 十大经典排序算法汇总(图文并茂)
1. 前言 算法为王. 想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手:只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 ...
- Python: PS 图层混合算法汇总
本文用 Python 实现了PS 中的图层混合算法,把很多常见的图层混合算法都汇总到了一起,比起以前写的算法,就是用矩阵运算代替了很耗时的for 循环,运行效率有所提升.具体的代码如下: import ...
- OI省选算法汇总
copy from hzwer @http://hzwer.com/1234.html 侵删 1.1 基本数据结构 1. 数组 2. 链表,双向链表 3. 队列,单调队列,双端队列 4. 栈,单调栈 ...
- Java常用的7大排序算法汇总
1.插入排序算法 插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好序,本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 k 的过 ...
- javascript算法汇总(持续更新中)
1. 线性查找 <!doctype html> <html lang="en"> <head> <meta charset="U ...
- 七内部排序算法汇总(插入排序、Shell排序、冒泡排序、请选择类别、、高速分拣合并排序、堆排序)
写在前面: 排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的随意序列,又一次排列成一个按keyword有序的序列.因此排序掌握各种排序算法很重要. 对以下介绍的各个排序,我们假定全部排 ...
- js排序算法汇总
JS家的排序算法 十大经典算法排序总结对比 一张图概括: 主流排序算法概览 名词解释: n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外 ...
随机推荐
- javascript arcgis 取区域中心点
javascript arcgis 取区域中心点 //graphic是绘制完多边形之后返回的对象 //获得多边形的中心点坐标 var centerPoint=graphic.geometry.getE ...
- Java基础系列-Lambda
原创文章,转载请标注出处:https://www.cnblogs.com/V1haoge/p/10755338.html 一.概述 JDK1.8引入了函数式编程,重点包括函数式接口.lambda表达式 ...
- Linux入门到放弃之六《磁盘和文件系统管理二》
上一篇博客写到了如何创建卷组和创建逻辑卷,但是有一个问题,需要更大逻辑卷空间怎么办呢? 要求:使用lvextend命令为逻辑卷 mail扩充容量,从卷组 mail_store 上再 划出5GB给逻辑卷 ...
- 梯度vs Jacobian矩阵vs Hessian矩阵
梯度向量 定义: 目标函数f为单变量,是关于自变量向量x=(x1,x2,-,xn)T的函数, 单变量函数f对向量x求梯度,结果为一个与向量x同维度的向量,称之为梯度向量: 1. Jacobian 在向 ...
- spring的xml文件的作用与实现原理
1.Spring读取xml配置文件的原理与实现 https://www.cnblogs.com/wyq178/p/6843502.html 2.首先使用xml配置文件的好处是参数配置项与代码分离,便于 ...
- A. Cubes Sorting 解析(思維)
Codeforce 1420 A. Cubes Sorting 解析(思維) 今天我們來看看CF1420 題目連結 題目 給一個數列\(a\),求能不能在不超過\(\frac{n(n-1)}{2}-1 ...
- JS如何避免重复性触发操作
btn的click事件,每次点击都会执行给定的function,如果function复杂的话,很容易消耗内存 解决方法--setTimeout延时处理. 给function做延迟处理,比如600毫秒后 ...
- STM32入门系列-存储器与寄存器介绍
介绍两部分内容: 什么是存储器映射 什么是寄存器及寄存器映射 为了让大家对存储器与寄存器有一个更清楚的认识,并且为之后使用 C 语言来访问 STM32 寄存器内容打下基础.等明白了如何使用 C 语言封 ...
- Java学习的第四十六天
1.例8.1例类 import java.util.Scanner; public class Cjava { public static void main(String[]args) { Time ...
- Spring创建Bean的过程Debug
目录 Spring流程Debug 1.1 Spring测试环境搭建 1.2 Debug容器创建过程 1.3 AbstractApplicationContext的refresh()包含的13个方法分析 ...