博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【算法•日更•第五十一期】知识扫盲:什么是离散化?
阅读量:5288 次
发布时间:2019-06-14

本文共 567 字,大约阅读时间需要 1 分钟。

▎前言

  之前就听很多同学和讲师们说离散化,小编一直不知道离散化是什么。

  其实离散化很简单,没有那么深奥,感觉这一篇注定又是一篇水博客。

▎概述

  离散化是程序设计中一个常用的技巧,它可以有效的降低。其基本思想就是在众多可能的情况中,只考虑需要用的值。离散化可以改进一个低效的算法,甚至实现根本不可能实现的算法。要掌握这个思想,必须从大量的题目中理解此方法的特点。例如,在建造线段树空间不够的情况下,可以考虑离散化。(copy自百度百科)

  感觉百度上的解释终于不深奥了。

▎原理

  比如说原来有这样一组数字:19260817,233,114514,100007,1;

  我们先排个序:1,233,100007,114514,19260817;

  然后标号:1,2,3,4,5

  重新放回数组:5,2,4,3,1

  所以离散化后就是5,2,4,3,1,通俗的可以理解成排名情况。

  说白了,就是降低数字规模,且不改变一些性质,就叫离散化。

  每道题要维护的性质不一样,所以如何离散化的策略也不一样,应该依题而定。

▎适用题型

  • 数据本身很大
  • 自身无法成为下标对应
  • 只需要维护相对性质
  • 与具体是多少无关
  • ……

转载于:https://www.cnblogs.com/TFLS-gzr/p/11392890.html

你可能感兴趣的文章
dubbo的服务发现和注册如何实现
查看>>
docker 不同版本 添加--insecure-registry
查看>>
并发编程中的Callable,Future,FitureTask
查看>>
Java反射机制
查看>>
Oracle EBS AP更新供应商地址
查看>>
Perl语言入门笔记 第十章 其他控制结构(unless,until,elsif,for,last,next,redo,and,or)
查看>>
phpunit.xml
查看>>
php实现工厂模式
查看>>
ubuntu 安装maven提示出错 The program 'mvn' can be found in the following packages
查看>>
drwtsn32.exe 遇到问题须要关闭。我们对此引起的不便表示抱歉
查看>>
cocos2d-x3.0 Slider
查看>>
Python接口测试-使用requests模块发送GET请求
查看>>
List中的元素 去重
查看>>
7/27 进制转换
查看>>
解决nginx无法访问问题
查看>>
[老老实实学WCF] 第十篇 消息通信模式(下) 双工
查看>>
WCF随笔3----消息编码器
查看>>
通过 C# 代码操作 Google 日历
查看>>
曲演杂坛--一条DELETE引发的思考
查看>>
web测试
查看>>