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_算法汇总的更多相关文章

  1. 排序算法汇总(C/C++实现)

    前言:     本人自接触算法近2年以来,在不断学习中越多地发觉各种算法中的美妙.之所以在这方面过多的投入,主要还是基于自身对高级程序设计的热爱,对数学的沉迷.回想一下,先后也曾参加过ACM大大小小的 ...

  2. 边缘检测matlab算法汇总

    边缘检测matlab算法汇总 1.      基于一阶微分算子检测边缘图像 一阶微分边缘算子又称梯度边缘算子,它是利用图像在边缘处的阶跃性,及图像梯度在边缘去得极大值得特征性进行边缘检测. Sobel ...

  3. JavaScript 数据结构与算法之美 - 十大经典排序算法汇总(图文并茂)

    1. 前言 算法为王. 想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手:只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 ...

  4. Python: PS 图层混合算法汇总

    本文用 Python 实现了PS 中的图层混合算法,把很多常见的图层混合算法都汇总到了一起,比起以前写的算法,就是用矩阵运算代替了很耗时的for 循环,运行效率有所提升.具体的代码如下: import ...

  5. OI省选算法汇总

    copy from hzwer @http://hzwer.com/1234.html 侵删 1.1 基本数据结构 1. 数组 2. 链表,双向链表 3. 队列,单调队列,双端队列 4. 栈,单调栈 ...

  6. Java常用的7大排序算法汇总

    1.插入排序算法 插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好序,本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 k 的过 ...

  7. javascript算法汇总(持续更新中)

    1. 线性查找 <!doctype html> <html lang="en"> <head> <meta charset="U ...

  8. 七内部排序算法汇总(插入排序、Shell排序、冒泡排序、请选择类别、、高速分拣合并排序、堆排序)

    写在前面: 排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素的随意序列,又一次排列成一个按keyword有序的序列.因此排序掌握各种排序算法很重要. 对以下介绍的各个排序,我们假定全部排 ...

  9. js排序算法汇总

    JS家的排序算法   十大经典算法排序总结对比 一张图概括: 主流排序算法概览 名词解释: n: 数据规模k:“桶”的个数In-place: 占用常数内存,不占用额外内存Out-place: 占用额外 ...

随机推荐

  1. 论减少代码中return语句的骚操作

    一.写作背景 最近组内在推行checkstyle代码规范的检测,关于checkstyle的介绍可以参考:https://checkstyle.sourceforge.io, 在按照checkstyle ...

  2. Spring Boot使用Mybatis实现增删改查

    java.com.wms.model.Admin.java 1 package com.wms.model; 2 3 import java.sql.Timestamp; 4 5 public cla ...

  3. 华为路由器配置OSPF

    OSPF是什么 OSPF(Open Shortest Pass First,开放最短路径优先协议),是一个最常用的内部网管协议,是一个链路状态协议. 使用场景:适用于运营商.政府机构等大型网络中多节点 ...

  4. Ansible之YAML语言

    playbook写yml语句,若干模块发给Ansible,变成一个一个play,多个片段组合起来变成大片. 最终还是要读取主机清单,来确定作用在哪些机器上. YAML语言 YAML是一个可读性高的用来 ...

  5. 作图直观理解Parzen窗估计(附Python代码)

    1.简介 Parzen窗估计属于非参数估计.所谓非参数估计是指,已知样本所属的类别,但未知总体概率密度函数的形式,要求我们直接推断概率密度函数本身. 对于不了解的可以看一下https://zhuanl ...

  6. Cypress系列(70)- server() 命令详解

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 作用 启动服务器以开始将响应路由到 cy ...

  7. 解决Mac下AndroidStudio内容时卡顿

    Mac下AndroidStudio在写代码的时候出现卡顿,小圆圈会一直转,此时我们应该检查下AndroidStudio的内存使用情况了. 1.点击左上角 AndroidStudio -- Prefer ...

  8. 人生第一篇博客 , 当然是经典的 "Hello World"

    package com.cqvie.Hello; public class FirstDemo {  public static void main(String[] args) {  System. ...

  9. Java 第四课 对象 类

    1.构造方法可以为private public 2.抽象类可以有构造方法,但是必须在子类中调用(super.构造方法)

  10. 在VirtualBox中调整Raspbian分辨率

    参考自一路阳光随行发表的virtualBox设置虚拟机分辨率大小中ubuntu虚拟机分辨率的设置方法. 启动Raspbian虚拟机,点击 窗口主菜单里的设备->安装增强功能.系统后会自动挂载增强 ...