Python 数据结构与算法——从某个列表中找出两个彼此最接近但不相等的数
先排序,再。。。(毕竟归并排序的时间复杂度仅为 O(nlogn)O(n\log n))排序的幽灵。排序和查找真是一对好基友。
来看基础版本:
from random import randrange
seq = [randrange(10**10) for _ in range(100)]
dd = float('inf')
for x in seq:for y in seq:if x == y: continued = abs(x-y)if dd > d:xx, yy, dd = x, y, d
>>> xx, yy
(15743, 15774)
两层嵌套,显然是一个平方级的操作。当然好比握手问题一样,存在大量重复比较的项:
for i in range(len(seq)-1):for j in range(i+1, len(seq)):if i == j or seq[i] == seq[j]:continued = abs(seq[i]-seq[j])if dd > d:x, y, dd = seq[i], seq[j], d
仍然是平方级的操作。
首先我们知道,处理一个已经排序的序列相对会容易一些,也即,已排序的序列中最接近的两个数必然是相邻的,而排序通常是一个线性对数级(O(nlogn)O(n\log n))的操作,且一次排序,一劳永逸,可以多次查找、
seq.sort()
for i in range(len(seq)-1):x, y = seq[i], seq[i+1]if x == y: continued = abs(x-y)if dd > d:xx, yy, d = x, y, d
新的解决方案的运行时间是线性对数级的,由排序操作主导。
Python 数据结构与算法——从某个列表中找出两个彼此最接近但不相等的数相关推荐
- python找色_python实现从一组颜色中找出与给定颜色最接近颜色的方法
本文实例讲述了python实现从一组颜色中找出与给定颜色最接近颜色的方法.分享给大家供大家参考.具体分析如下: 这段代码非常有用,可以找到指定颜色相似的颜色,比如有一组8个颜色,现在给定一个rgb格式 ...
- python实现从一组颜色中找出与给定颜色最接近颜色的方法
本文实例讲述了python实现从一组颜色中找出与给定颜色最接近颜色的方法.分享给大家供大家参考.具体分析如下: 这段代码非常有用,可以找到指定颜色相似的颜色,比如有一组8个颜色,现在给定一个rgb格式 ...
- 盘点一个使用Python实现Excel中找出第一个及最后一个不为零的数,它们各自在第几列
一.前言 前几天在Python交流群中遇到一个问了一个使用Python实现Excel中找出第一个及最后一个不为零的数,它们各自在第几列的问题,觉得还挺有用的,这里拿出来跟大家一起分享下. 数据截图如下 ...
- python指定元素对调_Python 将列表中的头尾两个元素对调
Python 将列表中的头尾两个元素对调 定义一个列表,并将列表中的头尾两个元素对调. 例如:对调前 : [1, 2, 3] 对调后 : [3, 2, 1]def swapList(newList): ...
- python 已知一个字符,在一个list中找出近似值或相似值, 模糊匹配
已知一个元素,在一个list中找出相似的元素 使用场景: 已知一个其它来源的字符串, 它有可能是不完全与我数据库中相应的字符串匹配的,因此,我需要将其转为适合我数据库中的字符串 使用场景太绕了, 直接 ...
- python随机生成20个整数列表、找出被7除余5_the date of departure
[简答题]Lab5.2:编写程序,要求用户输入一个大写英文字母,根据字符在字母表里的顺序位置N,输出一个高度为N的金字塔图形,使底部那行的中间字母是用户输入的字母. (10.0分) [简答题]BMI计 ...
- EXCEL 中找出两个sheet相同列
在工作中我们可能经常会使用到,在sheet1->A 列数据同时在sheet2->A列出现.那么我们用EXCEL中怎么找出他们呢? 在EXCEL中可以采用VLOOKUP函数来完成.具体操作如 ...
- js-FCC算法Smallest Common Multiple。找出两个参数和它们之间的连续数字的最小公倍数。...
存档. 找出能被两个给定参数和它们之间的连续数字整除的最小公倍数. function smallestCommons(arr) {//分解质因数法,分解为若干个质数相乘var arrratio=[]; ...
- Excel中找出两列中相同的值
第一步:选中要对比的H列和J列 第二步:点击"开始",然后点击"条件格式"并选择"突出显示单元格规则" 第三步: 选中"重复值&q ...
最新文章
- C(第一个C程序) 和 C++ (第一个C++程序)对比碰撞
- 夺命雷公狗---linux NO:17 linux系统查找
- tensorflow就该这么学--5( 神经网络基础)
- java listfiles 使用_Java中list()和listFiles()方法之间的区别
- dbus的代码范例 linux_linux-将结构传递给dbus方法的工具?
- 103_Power Pivot 透视表中空白标签处理及百分比
- 认识和学习orchestrator之基本使用篇
- Failed to maintain projects LRU cache for dir *********
- 高二获全奖跳级进哈佛,29岁坐拥数亿身家,这位曾让马云畏惧的“天才神童”现在怎么样了?...
- websphere html 缓存,如何清除WebSphere类缓存
- dlna投屏html源码,DLNA(一)
- 计算机本地磁盘设密码,电脑硬盘,教您电脑硬盘怎么设置密码
- PS经典教程:从零开始设计一个漂亮的网页
- svn tour cycle
- 第一天-2.安装vmware虚拟机kali系统
- rewrite常用的.htaccess规则举例(rewrite伪静态规则大全)
- 【图文并茂】如何进行Win7系统的重装
- 技嘉z68主板驱动下载地址
- iOS调试技巧(转载)
- 基于单片机的智能手环系统设计
热门文章
- get_json_object与json_tuple 的解析
- mysql explain ref const_MySQL EXPLAIN 详解
- linux下ip地址转换整形,Linux中ip地址结构和ip地址的转换
- python多元回归因子选取_Python中的多元回归(带因子选择)
- php中的 i详解,浅析PHP中的i++与++i的区别及效率
- stringstream常见用法介绍
- Python基础——input交互功能
- 一篇文章告诉你如何寻找水王(数组中存在超过一半的数字)
- SpringCloud-服务的消费者(rest+ribbon)
- 一篇不错的vim命令入门