美文网首页
Python三种经典算法分享:查找、排序、递归。

Python三种经典算法分享:查找、排序、递归。

作者: 孤城暮雨丶 | 来源:发表于2021-01-13 13:40 被阅读0次

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

本文章来自腾讯云 作者:企鹅号小编

私信小编回复01可领取学习资料以及学习视频

iTesting,爱测试,爱分享

沉寂了一段时间,继续学习。

算法这个系列我想分享很久了,奈何本身对算法不是特别了解,又找不到合适的载体来分享。

最近看了本有趣的算法书, 文中通过图文并茂的讲解给我很大启发,尝试着分享下。需要注意的是, 文中各个算法的写法不是简单的拷贝,算理解思想后拿Python3重新写了遍,分享的代码和书中的例子也稍有不同,加了些日常工作中会做的处理,如有不适,请联系我。


在这里插入图片描述 在这里插入图片描述

对于包含N个元素的列表,用二分查找最多需要log2 N 步。(对数是幂运算的逆运算)

大O表示法指出了算法有多快。例如,假设列表包含n 个元素。简单查找需要检查每个元素,因此需要执行n 次操作。使用大O表示法,这个运行时间为O (n )。单位秒呢?没有——大O表示法指的并非以秒为单位的速度。大O表示法让你能够比较操作数,它指出了算法运行时间的增速 。

再来看一个例子。为检查长度为n 的列表,二分查找需要执行log n 次操作。使用大O表示法,这个运行时间怎么表示呢?O (log n )。一般而言,大O表示法按从快到慢的顺序列出了你经常会遇到的5种大O运行时间。


在这里插入图片描述

选择排序

思想:

找出数组中最小的元素

把数组中最小的元素pop出来到新的数组里。

重复以上操作直到原数组为空


在这里插入图片描述

需要存储多个元素时,可使用数组或链表。

数组的元素都在一起。

链表的元素是分开的,其中每个元素都存储了下一个元素的地址。

数组的读取速度很快。

链表的插入和删除速度很快。

在同一个数组中,所有元素的类型都必须相同(都为int、double等)


在这里插入图片描述 在这里插入图片描述

最小公倍数:

思想:

两个数(x, y)的最小公倍数数的算法为:两个数相乘再除以他们的最大公约数

0没有公倍数

在这里插入图片描述

公约数,公倍数,适用于自然数。

快速排序

思想:

少于2个元素的数组不需要排序

找一个元素作为基数

小于基数的放一个数组

大于基数的放一个数组

针对小于基数的数组做快速排序,暂且叫low

针对大于基数的数组做快速排序, 暂且叫high

最终排序后的 low + 【基数】+ high,就是排好序的数组


在这里插入图片描述 在这里插入图片描述

相关文章

  • Python三种经典算法分享:查找、排序、递归。

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处...

  • 消息传递-缓存-转发流程

    消息传递 缓存查找 哈希查找 三种查找方式缓存 -> 哈希算法查找当前类 -> 已排序 二分查找算法 未排序 ...

  • 一、算法

    目标 递归算法查找算法算法分析十大排序算法 递归算法 什么是递归递归,在数学与计算机科学中,是指在函数的定义中使用...

  • 剑指offer学习笔记:2.4 算法和数据操作

    2.4 算法和数据操作 重点关注二分查找,归并排序和快速排序。很多算法都有递归和循环两种不同实现方法。通常基于递归...

  • 排序算法、查找算法、递归

    1.1 排序算法 1.1.1 排序的介绍 排序是将一群数据,依指定的顺序进行排列的过程。 排序分类: 1、内部排序...

  • java (查找和排序)

    1.查找 递归形式: 二分查找: 2.排序方式 下面这个表格总结了各种排序算法的复杂度与稳定性: 冒泡排序 特点:...

  • iOS 算法之排序、查找、递归

    文章内容来自:iOS 算法之排序、查找、递归 排序 冒泡排序(依次循环旁边的比较放到后边去) 选择排序(拿前边的和...

  • 算法面经--归并排序

    归并排序(递归合并) 一、算法思路 该算法采用经典的分治(****divide-and-conquer) 策略(分...

  • JS版本 排序算法

    1.三种排序--冒泡,选择排序,快排 2.二分查找(非递归版本) 3.链表反转

  • python 排序算法

    文章概述 介绍各大常用经典的排序算法和效率,以及python实现常用算法(冒泡排序,选择排序,快速排序,插入排序)...

网友评论

      本文标题:Python三种经典算法分享:查找、排序、递归。

      本文链接:https://www.haomeiwen.com/subject/fppuaktx.html