个人理财 为什么排序数据对于算法很重要 - 傻瓜

为什么排序数据对于算法很重要 - 傻瓜

视频: 樂透統計學 彩迷使用解惑篇-樂透狂人精彩解說別錯過 2025

视频: 樂透統計學 彩迷使用解惑篇-樂透狂人精彩解說別錯過 2025
Anonim

试想在列表中找到一个项目,而不是先排序。每个搜索都是一个耗时的顺序搜索。但是,可以为算法不排序数据做一个案例。毕竟,数据仍然可以访问,即使你不分类 - 排序也需要时间。

当然,未分类数据的问题与您厨房的垃圾抽屉(或任何有垃圾抽屉的地方 - 假设您可以找到)相同。在垃圾抽屉里寻找任何东西都是很费时的,因为你甚至不能开始猜测在哪里找东西。你不必为了找到你需要的东西而只是拿出你想要的东西,就可以拿出你不想要的其他东西。不幸的是,您需要的物品可能不在垃圾抽屉中,您可能已经将其扔出或放在不同的抽屉中。

<! --1 - >

您家中的垃圾抽屉就像系统中的未分类数据一样。当数据未排序时,您需要一次搜索一个项目,而您甚至不知道是否能够在不搜索数据集中的每个项目的情况下找到所需的项目。处理数据是一种令人沮丧的方式。当然,简单地排序数据是不够的。如果您有一个按姓氏排序的员工数据库,但需要按出生日期查找员工,则排序无用。 (假设您想查找某一天有生日的所有员工)。要查找您需要的出生日期,您仍然必须一次搜索整个数据集。因此,分类必须专注于特定的需求。是的,您需要按部门按照某个时间点排序的员工数据库,而另一个时间则需要按姓氏排序,但现在您需要按出生日期对其进行排序,以便有效地使用数据集。

需要维护相同数据的多个排序顺序是开发人员创建索引的原因。排序小索引比排序整个数据集要快。该索引维护一个特定的数据顺序,并指向完整的数据集,以便您可以快速找到所需的数据。通过维护每个排序要求的索引,您可以有效地减少数据访问时间,并允许多个人按照访问数据的顺序同时访问数据。

有很多方法可以对排序算法进行分类。其中一种方式就是这种速度。当考虑特定排序算法在排列数据时的有效性时,定时基准通常会考虑两个因素:

比较:

  • 要将数据从数据集中的一个位置移动到另一个位置,您需要知道将数据移动到何处这意味着将目标数据与数据集中的其他数据进行比较。比较少意味着更好的表现。 交换:
  • 取决于您如何编写算法,数据可能无法在第一次尝试时到达数据集中的最终位置。数据可能实际上移动了好几次。交换的数量对速度影响很大,因为现在实际上是将数据从一个位置移动到另一个位置。越来越小的交流(如使用索引时)意味着更好的性能。

为什么排序数据对于算法很重要 - 傻瓜

编辑的选择

记录您的思科网络配置与CDP - 傻瓜

记录您的思科网络配置与CDP - 傻瓜

记录思科网络配置有时没有思科发现协议)可能需要花费数小时在布线室跟踪电缆和记录端口。在某些情况下,配线室是一个真正的老鼠的电缆巢,并且可能需要几个小时的导航才能找出哪些交换机连接到哪个交换机,哪些路由器,...

以太网通道诊断信息收集 - 虚拟

以太网通道诊断信息收集 - 虚拟

诊断思科网络中的以太网通道问题,您首先必须能够收集您的交换机及其配置。为了执行这个任务,你一如既往地依靠Show和debug命令。首先,简要介绍一下show命令的内容。 Switch1> enable Switch1#configure terminal Switch2#show EtherChannel ...

扩展访问控制列表(ACL) - 虚拟

扩展访问控制列表(ACL) - 虚拟

扩展访问控制列表(ACL)允许您允许拒绝来自特定IP地址的流量到特定的目标IP地址和端口。它还允许您指定不同类型的流量,如ICMP,TCP,UDP等。不用说,它非常细化,可以使您非常具体。如果...

编辑的选择

电子项目计划步骤1:设想您的电子项目 - 傻瓜

电子项目计划步骤1:设想您的电子项目 - 傻瓜

设计和建立你的电子项目的细节,你应该退后一步,看看大局。首先,你需要确保你有一个坚实的想法为您的项目。你为什么要建立它?它会做什么,谁来使用它,为什么? ...

电子项目计划步骤4:构建您的电路 - 傻瓜

电子项目计划步骤4:构建您的电路 - 傻瓜

而且你对它的操作感到满意,你可以建立一个永久版本的电路。虽然有几种方法可以做到这一点,但最常见的是在印刷电路板(也称为PCB)上构建电路。请注意,在PCB上组装电路...

电子项目计划步骤3:原型电路 - 假人

电子项目计划步骤3:原型电路 - 假人

永久的电路板,你会想确保它的工作。最简单的方法就是在无焊面包板上构建电路。无焊料面包板可以让您快速组装电路元件而不需要焊接任何东西。相反,您只需将其裸露在外...

编辑的选择

如何替换R中的文本 - 虚拟变量

如何替换R中的文本 - 虚拟变量

R中的sub()函数在文本模式,并用替换文本替换此模式。你使用sub()来替代文本文本,并使用其表兄gsub()来替换所有出现的模式。 (gsub()中的g表示全局。)假设你有句子He ...

中如何成功地遵循命名惯例在R - 傻瓜

中如何成功地遵循命名惯例在R - 傻瓜

R是非常自由的,对象和功能。这个自由是一个很大的祝福,同时也是一个很大的负担。没有人不得不遵循严格的规则,所以在R中编程的人基本上可以按照自己的意愿去做。如何选择一个正确的名字...

中使用函数在R中创建并转换脚本后,如何使用R - dummies中的函数

中使用函数在R中创建并转换脚本后,如何使用R - dummies中的函数

再次使用前面显示的Source()命令将其加载到控制台中。现在你看...什么也没有。 R并不让你知道它已经加载了这个函数,但它已经在工作空间中了,你可以检查一下...