排序一个数组可以是有用的
来源:互联网 发布:淘宝店铺怎么替换图片 编辑:程序博客网 时间:2024/05/14 15:31
排序案例
有许多不同的情况下,排序一个数组可以是有用的。例如,你的电子邮件程序通常会显示电子邮件,以收到的时间,因为更多的最近的电子邮件通常被认为是更相关的。当你去你的联系人列表,名称通常是按字母顺序排列,因为它更容易找到你正在寻找的名称的名称。这两个演示涉及在演示文稿之前的排序数据。
排序一个数组可以使搜索一个数组更有效的,不仅对人类,但也为计算机。例如,考虑我们想知道是否有一个名称出现在一个列表中的情况。为了查看一个名称是否在列表中,我们必须检查数组中的每一个元素,看看是否出现这个名称的名称。对于一个数组,有许多元素,通过它们搜索都可以是昂贵的。
但是,现在假设我们的名字是按字母顺序排序的数组。在这种情况下,我们只需要搜索到我们遇到的名字是按字母顺序大于我们所寻找的点。在这一点上,如果我们没有发现的名字,我们知道它不在阵列中的其余的存在,因为所有的名字,我们还没看到数组中的保证是按字母顺序排列的大!
事实证明,有更好的算法来搜索排序的数组。使用一个简单的算法,我们可以搜索一个排序的数组包含1000000个元素,只使用20个比较!当然,不利的是,排序一个数组是比较昂贵的,它往往是不值得的排序一个数组,以使搜索速度快,除非你要寻找它很多次。
在某些情况下,排序一个数组可以使搜索不必要。再考虑另一个例子,我们想找到最好的测试得分。如果数组是无序的,我们要看看在数组中找出最大的测验分数的每一个元素。如果列表是排序的,最好的测试分数将在第一或最后的位置(取决于我们是否在上升或下降的顺序排序),所以我们不需要搜索!
如何整理工作
排序通常是通过反复比较对的数组元素,并交换它们,如果他们满足一些预定义的标准。这些元素的顺序进行比较,根据不同的排序算法使用。该标准取决于列表将如何排序(例如,在上升或下降的顺序)。
有许多方法来对一个数组进行排序。选择排序可能是最简单的排序理解,这使得它成为一个很好的候选人,教学,即使它是一个较慢的种类。
选择排序执行以下步骤来对一个数组进行排序,从最小到最大:
1)在数组索引0中开始搜索整个数组,查找最小值
2)将数组中的最小值与索引0中的值交换
3)重复步骤2和1从下一个索引开始
换句话说,我们要在数组中找到最小的元素,并将其交换到第一个位置。然后我们要找到下一个最小的元素,并把它换到第二个位置。这个过程将被重复,直到我们用完元素。
这里是一个该算法的一个例子,工作在5个元素。让我们开始一个示例数组:
有许多不同的情况下,排序一个数组可以是有用的。例如,你的电子邮件程序通常会显示电子邮件,以收到的时间,因为更多的最近的电子邮件通常被认为是更相关的。当你去你的联系人列表,名称通常是按字母顺序排列,因为它更容易找到你正在寻找的名称的名称。这两个演示涉及在演示文稿之前的排序数据。
排序一个数组可以使搜索一个数组更有效的,不仅对人类,但也为计算机。例如,考虑我们想知道是否有一个名称出现在一个列表中的情况。为了查看一个名称是否在列表中,我们必须检查数组中的每一个元素,看看是否出现这个名称的名称。对于一个数组,有许多元素,通过它们搜索都可以是昂贵的。
但是,现在假设我们的名字是按字母顺序排序的数组。在这种情况下,我们只需要搜索到我们遇到的名字是按字母顺序大于我们所寻找的点。在这一点上,如果我们没有发现的名字,我们知道它不在阵列中的其余的存在,因为所有的名字,我们还没看到数组中的保证是按字母顺序排列的大!
事实证明,有更好的算法来搜索排序的数组。使用一个简单的算法,我们可以搜索一个排序的数组包含1000000个元素,只使用20个比较!当然,不利的是,排序一个数组是比较昂贵的,它往往是不值得的排序一个数组,以使搜索速度快,除非你要寻找它很多次。
在某些情况下,排序一个数组可以使搜索不必要。再考虑另一个例子,我们想找到最好的测试得分。如果数组是无序的,我们要看看在数组中找出最大的测验分数的每一个元素。如果列表是排序的,最好的测试分数将在第一或最后的位置(取决于我们是否在上升或下降的顺序排序),所以我们不需要搜索!
如何整理工作
排序通常是通过反复比较对的数组元素,并交换它们,如果他们满足一些预定义的标准。这些元素的顺序进行比较,根据不同的排序算法使用。该标准取决于列表将如何排序(例如,在上升或下降的顺序)。
交换两个元素,我们可以使用std::swap()功能从C++标准库,这是在头文件中定义的算法。由于效率的原因,std::swap()感动在C++ 11本头。
234567891011#include <algorithm> // for std::swap, use <utility> instead if C++11#include <iostream> int main(){ int x = 2; int y = 4; std::cout << "Before swap: x = " << x << ", y = " << y << '\n'; std::swap(x, y); // swap the values of x and y std::cout << "After swap: x = " << x << ", y = " << y << '\n';}选举排序
有许多方法来对一个数组进行排序。选择排序可能是最简单的排序理解,这使得它成为一个很好的候选人,教学,即使它是一个较慢的种类。
选择排序执行以下步骤来对一个数组进行排序,从最小到最大:
1)在数组索引0中开始搜索整个数组,查找最小值
2)将数组中的最小值与索引0中的值交换
3)重复步骤2和1从下一个索引开始
换句话说,我们要在数组中找到最小的元素,并将其交换到第一个位置。然后我们要找到下一个最小的元素,并把它换到第二个位置。这个过程将被重复,直到我们用完元素。
这里是一个该算法的一个例子,工作在5个元素。让我们开始一个示例数组:
0 0
- 排序一个数组可以是有用的
- 一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组吗?
- 对一个数组进行排序,这个数组可以是整型、浮点型
- 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组。
- sortTable---一个指令是你的表格可以排序
- 统计一个数字在排序数组中出现的次数。 数组是排序的,只需要找到第一个K和最后一个K就可以知道有多少个,
- vector是一个十分有用的容器
- oracle排序一个挺有用的东西
- 【C语言】写冒泡排序可以排序一个整型数组。
- 写冒泡排序可以排序一个整型数组
- 已知一个几乎有序的数组,几乎有序是指,如果把数组排好顺序的话,每个元素移动的距离可以不超过k,并且k相对于数组来说比较小。请选择一个合适的排序算法针对这个数据进行排序。 给定一个int数组A,同时给定
- NYOJ 贪心 vector的使用,是一个数组,有重复数据,可以下标访问
- (Leetcode)判断一个图是否是可以拓扑排序的——使用Queue
- 设计一个公共的class,通过它的接口可以对任何类型的数组排序
- 设计一个公共的class,通过它的接口可以对任何类型的数组排序
- lua 数组的索引可以是负数
- 虚拟列表是可以排序的
- <笔试><面试>编写一个排序函数,实现,既可以排序整形数组,又可以排序字符串。
- 详解Python中re.sub
- Java并发编程:Callable、Future和FutureTask
- Climbing Stairs
- jenkins credentials & git ssh 认证
- iOS 通过定位获取常驻后台(重要是省电)
- 排序一个数组可以是有用的
- POJ3422 Kaka's Matrix Travels
- Jsp import 默认包class 的问题
- POSIX.1 and ISO C标准头文件
- js如何将数字表示成23,456,987
- apue 头文件包含
- Nginx源码分析 - 主流程篇 - 解析配置文件
- Javascript 原型、原型链、prototype以及__proto__详解
- Android ViewPager的基本用法