Python学习笔记19(算法)

1.二分查找

只能用二分查找查找有序列表

def bin_search(data,val):  #data为被查找的列表,val是要查找的值low = 0high = len(data) - 1while low <= high:mid = (low+high)//2if data[mid] == val:return mid           #找到了,返回val所在的索引elif data[mid] < val:low = mid + 1else:high = mid - 1return                        #未找到,返回None
二分查找

2.冒泡排序

def bubble_sort(data):                   #data传需要排序的列表for i in range(len(data)-1):FLAG = 0for j in range(len(data)-i-1):if data[j] > data[j+1]:data[j],data[j+1] = data[j+1],data[j]FLAG = 1if FLAG == 0:break
冒泡排序

3.选择排序

def select_sort(data):for i in range(len(data)-1):min = ifor j in range(i+1,len(data)):if data[j] < data[min]:min = jdata[i],data[min] = data[min],data[i]
选择排序

4.插入排序

def insert_sort(data):for i in range(1,len(data)):tmp = data[i]j = i - 1while j >= 0 and data[j] > tmp:data[j+1] = data[j]j = j - 1data[j + 1] = tmp
插入排序

5.快速排序

def quick_sort(data,left,right):if left < right:mid = partition(data,left,right)quick_sort(data,left,mid - 1)quick_sort(data,mid + 1,right)def partition(data,left,right):tmp = data[left]while left < right:while left < right and data[right] >= tmp:right -= 1data[left] = data[right]while left < right and data[left] <= tmp:left += 1data[right] = data[left]data[left] = tmpreturn left
快速排序

 6.堆排序

def sift(data,low,high):i = lowj = 2 * i +1tmp = data[i]while j <= high:if j + 1 <= high and data[j] < data[j+1]:j += 1if data[j] > tmp:data[i] = data[j]i = jj = 2 * i + 1else:breakdata[i] = tmpdef heap_sort(data):n = len(data)for i in range(n // 2 - 1 ,-1 ,-1):sift(data,i,n-1)for i in range(n-1,-1,-1):data[0],data[i] = data[i],data[0]sift(data,0,i-1)
堆排序

7.归并排序

def merge(data,low,mid,high):i = lowj = mid+1tmp = []while i <= mid and j <= high:if data[i] < data[j]:tmp.append(data[i])i += 1else:tmp.append(data[j])j += 1while i <= mid:tmp.append(data[i])i += 1while j <= high:tmp.append(data[j])j += 1data[low:high+1] = tmpdef mergesort(data,low,high):if low < high:mid = (low+high)//2mergesort(data,low,mid)mergesort(data,mid+1,high)merge(data,low,mid,high)
归并排序

 

 

转载于:https://www.cnblogs.com/zy516563199/p/7453605.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399972.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#通过接口与线程通信(捕获线程状态)介绍

摘要&#xff1a;本文介绍C#通过接口与线程通信(捕获线程状态)&#xff0c;并提供简单的示例代码供参考。 提示&#xff1a;本文所提到的线程状态变化&#xff0c;并不是指线程启动、暂停、停止&#xff0c;而是说线程内部状态的迁移。随着软件技术不断发展&#xff0c;用户需求…

php 类文件加载 Autoloader

做习惯了编译语言&#xff0c;转到php 使用 php的面向对象开发时候遇见一个挺别扭的问题。在Php中引入对象 后 在调用过程中还需要将对象所在的php文件 require 到当前php文件 目前代码结构 index.php <?phpuse model\BookModel;include_once __DIR__./autoloader.php; Aut…

【MSP430G2553】图形化开发笔记(4) Timer_A 定时器

目录概述Timer_A 模块16 位主定时器连续计数模式增计数模式增减计数模式主定时器的一般设置捕获/比较模块 CCRx捕获模块比较模块小结Grace中配置Timer_ATimer0_A3 - Overview介绍用例&#xff1a;定时器的启动/停止用例&#xff1a;使用定时器比较模式产生周期性间隔用例&#…

flask学习笔记--蓝图

https://blog.csdn.net/m0_37519490/article/details/80627601 初学者建议看 https://www.cnblogs.com/jackadam/p/8684148.html

前端UI框架《Angulr》入门

Angulr 项目的名称为 Angulr&#xff0c;对&#xff01;没错&#xff01;就是少个 a&#xff0c;少个 a 就是它正确的拼写。 是一个以 Bootstrap 和 AngularJS 为基础&#xff0c;并使用了大量前端开源组件合成的一个前端UI框架&#xff0c;是非常棒的UI框架。 今天就来和大家讲…

比赛一买香蕉问题---解题报告

买香蕉问题 题目大意&#xff1a; 士兵想买W个香蕉。买第一个香蕉K美元&#xff0c;第二个2K美元&#xff0c;以此类推&#xff0c;第i 个香蕉iK美元。 现在该士兵有n美元&#xff0c;而他想买W个香蕉&#xff0c;他需要向他的朋友借多少美元&#xff1f; 要求&#xff1a; 输入…

Flask使用Flask-SQLAlchemy操作MySQL数据库

https://www.jianshu.com/p/6ae0d30a5539 前言&#xff1a; Flask-SQLAlchemy是一个Flask扩展&#xff0c;简化了在Flask程序中使用SQLAlchemy的操作。SQLAlchemy是一个很强大的关系型数据库框架&#xff0c;支持多种数据库后台。SQLAlchemy提供了高层ORM&#xff0c;也提供了…

会计基础模拟练习一(3)

会计基础模拟练习一&#xff08;3&#xff09; 下周一18号会计从业资格考试就要报名了,本人重点看的是会计基础和会计电算化,做了一下测试题,五十多分,较之前有了一些长进.很多之前重点复习的章节有了明显的提升,像后面的几章没怎么看,出错的概率就大大的提升了. 我觉得这个考试…

[2017-08-31]如何使用ruby同步markdown博文到博客园

这两天折腾了一下用ruby通过MetaWeblog接口把本博客同步到博客园&#xff0c;特此记录。 MetaWeblog MetaWeblog是一个专门关于博客的协议标准&#xff0c;通过xmlrpc&#xff0c;很简单的定义了新增、编辑、删除三个基本接口。 在博客园设置页签的最下方&#xff0c;保存按钮之…

MacOS中Dock栏的设置和使用技巧,新手必看

MacOS中Dock栏的设置和使用技巧&#xff0c;新手必看 Dock栏就是Mac放置常用应用程序和文件夹快捷方式的任务栏&#xff0c;为你访问这个应用和文件提供了非常方便的入口。 作为Mac用户最常使用的区域&#xff0c;要知道如何才能更高效的使用它&#xff0c;从而达到事半功倍的…

ldconfig deferred processing now taking place

在ubuntu下面安装软件&#xff0c;安装结束后&#xff0c;提示&#xff1a;ldconfig deferred processing now taking place 到网上查询了一下&#xff0c;大概意思是说&#xff1a;软件安装完了&#xff0c;是否要重启电脑。转载于:https://www.cnblogs.com/wangkongming/p/…

51Nod 1003 阶乘后面0的数量 | 思维

题意&#xff1a;n的阶乘后面0的个数&#xff0c;如果直接算出阶乘再数0的数量一定会超时的。因为102*5,所以求出5贡献的次数就行。#include "bits/stdc.h" using namespace std; #define LL long long #define INF 0x3f3f3f3f3f #define PI acos(-1) #define N 510 …

史上超详细的flask_sqlalchemy连接mysql数据库

https://www.jianshu.com/p/1ba45bd6c351 PythonFlask安装&#xff1a;https://www.jianshu.com/p/cd1925e90eda Flask路径参数以及请求参数讲解&#xff1a;https://www.jianshu.com/p/54057b4f0437 首先安装pymysql&#xff0c;命令如下&#xff1a;pip install pymysql 安装…

中国移动技术愿景2020+

2019独角兽企业重金招聘Python工程师标准>>> 中国移动技术愿景2020 本文档白皮书是中国移动提出的在2020年及其之后的若干年内对产业各方面技术发展的构想&#xff0c;包括行业发展趋势&#xff0c;面向万物的数字化服务和对技术发展的看法。希望产业各方面能够开展…

jQuery对象与dom对象的转换

jQuery对象与dom对象的转换只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的&#xff0c;调用方法时要注意操作的是dom对象还是 jquery对象。普通的dom对象一般可以通过$()转换成jquery对象。如&#xff1a;$(document.getElementByIdx_x("msg…

用sqlalchemy对mysql数据库增删改查demo

首先要搭建mysql服务器、安装mysql python驱动、安装sqlalchemy包&#xff0c; 我用的是windows环境&#xff0c;安装参考&#xff1a;https://blog.csdn.net/jishuwenming/article/details/80993840 完整demo 如下&#xff1a; --------------------- 作者&#xff1a;jishuw…

《计算机程序设计艺术》pdf

下载地址&#xff1a;网盘下载 内容简介 编辑本书作者D. E. Knuth是在计算机学界十分著名的学者&#xff0c;在本领域享有很高权威和盛名&#xff0c;他的这部著作是无数计算机专业人员的学习教材和参考读物&#xff0c;也是许多专业研究工作者经常阅读的经典。本书已被翻译为几…

Jsoup 抓取和数据页 认识HTTP头

推荐一本书&#xff1a;黑客攻防技术宝典.Web实战篇 &#xff1b; 顺便留下一个疑问&#xff1a;能否通过jsoup大量并发訪问web或者小型域名server&#xff0c;使其瘫痪&#xff1f;其有用jsoup熟悉的朋友能够用它解析url来干一件非常无耻的事&#xff08;源代码保密&#xff…

杭电划分问题

在做杭电做题时遇到好几个有关划分的题目&#xff0c;比如2050 折线分割平面、1290的献给母校的蛋糕&#xff0c;都是数学问题吧&#xff0c;感觉挺有做数学题的感觉的&#xff0c;在这里总结一下。 1、n个点最多把直线分成1n份&#xff0c;这个很好理解 2、n条直线最多把平面分…

flask + 蓝图 用 sqlalchemy 对 mysql 进行 增删查改 的 demo

main.py import uuid # UUID: 通用唯一标识符 # from flask import Flask from flask import Flask, request, json, Response from flask_sqlalchemy import SQLAlchemyfrom app.main.views import * from app.app01.views import * from app.app02.views import * from a…