二分查找用于高效地遍历数组,但二分查找仅在数组已排序时才有效。
那么,一个值数组将如何排序呢?
简短回答:排序有很多种类型,决定使用哪种方法取决于具体情况。
为了更详细地理解,我们需要研究三种不同的排序算法:
- 输入排序
- 合并排序
- 选择性排序
选择性排序
“选择性排序”——最基本的类型,该算法迭代 何时使 购买电话号码列表 用哪 地从未排序的子数组中找到最小值,并将其移动到数组开头的已排序子数组中。
子数组是数组的一部分。将有两个子数组:已排序的部分和剩余的未排序部分。
下面是一个数组的示例:
最初,最小值被设置为起始索引值(“5”)。当遍历整个数组 为品牌付费的忠实消费者那里获得的 并找到最小值(“1”)时,将最小值替换为起始索引处的值。对下一个值重复该过程,直到遍历整个数组。
请注意!当您需要快速获得某些东西时,选择性排序是一种简单但效率不高的选择。
输入排序
另一方面,输入排序会找到下一个值并对其进行排序。因此,您需要使用输入排序对未排序数组从小到大进行排序。
想象一下你正在一张一张地发牌。为了帮助整理卡片,您首先要按最低值对发出的卡片进行排序。
鉴于您当前手中的牌尚未排序,您将如何开始对牌进行排序?输入排序就像你对这手牌进行排序一样。
从手中的第一张牌开始。他的左边没有牌,所以他留下。第二 电话号码业务线索 张卡片现在是主卡片,并将放置在其左侧卡片的旁边。由于 4 较大,因此 4 向前移动一个位置。
再次,这里的区别是选择排序不断地寻找最小的值,而插入排序则寻找后续的值并对其进行排序。
摆脱平庸的教育体系,开始用全新的方法学习设计,成为一名成功的踏步者!
→ 立即注册!
合并排序
最后,归并排序是一种分而治之算法,它不断将数组分成两半,直到分割后的子数组只包含一个元素。从那里,它将两半重新合并在一起,并在合并时对值进行排序。
为了实现这个结果,您需要递归,这是一种方法调用自身的编程技术。它通常用于通过将问题划分为子问题来解决的情况,而子问题又可以使用相同的技术来解决。
基本情况无需调用递归措施即可返回值。调用自身的方法将不会继续运行其余代码,直到被调用的方法返回值。
例如,假设您想在聚会上为自己和朋友订购披萨。但是只有当你的朋友吃披萨时你才会订披萨,而且只有当你的朋友吃披萨时你的朋友才会吃披萨。这种情况一直持续到一位朋友说够了,并简单地说“好吧,我们点菜吧”。这种“好处”将会在朋友之间传递,最终传到你身上。
这种信息流类似于代码中递归的工作方式。递归方法不断调用自身,直到找到答案。每个人都代表着自己的使命。该方法不断调用自身,直到达到基本情况。在这个例子中,基本情况是第一个“Okay!”并返回到第一个呼叫。