何时使用哪种排序算法?

二分查找用于高效地遍历数组,但二分查找仅在数组已排序时才有效。

 

那么,一个值数组将如何排序呢?

 

简短回答:排序有很多种类型,决定使用哪种方法取决于具体情况

 

为了更详细地理解,我们需要研究三种不同的排序算法:

  • 输入排序
  • 合并排序
  • 选择性排序

 

选择性排序

 

“选择性排序”——最基本的类型,该算法迭代 何时使 购买电话号码列表 用哪 地从未排序的子数组中找到最小值,并将其移动到数组开头的已排序子数组中。

 

子数组是数组的一部分。将有两个子数组:已排序的部分和剩余的未排序部分。

 

下面是一个数组的示例:

 

 

最初,最小值被设置为起始索引值(“5”)。当遍历整个数组 为品牌付费的忠实消费者那里获得的 并找到最小值(“1”)时,将最小值替换为起始索引处的值。对下一个值重复该过程,直到遍历整个数组。

 

请注意!当您需要快速获得某些东西时,选择性排序是一种简单但效率不高的选择。

 

输入排序

 

另一方面,输入排序会找到下一个值并对其进行排序。因此,您需要使用输入排序对未排序数组从小到大进行排序。

 

想象一下你正在一张一张地发牌。为了帮助整理卡片,您首先要按最低值对发出的卡片进行排序。

 

鉴于您当前手中的牌尚未排序,您将如何开始对牌进行排序?输入排序就像你对这手牌进行排序一样。

 

 

从手中的第一张牌开始。他的左边没有牌,所以他留下。第二 电话号码业务线索 张卡片现在是主卡片,并将放置在其左侧卡片的旁边。由于 4 较大,因此 4 向前移动一个位置。

 

再次,这里的区别是选择排序不断地寻找最小的值,而插入排序则寻找后续的值并对其进行排序。

 

摆脱平庸的教育体系,开始用全新的方法学习设计,成为一名成功的踏步者!

→ 立即注册!

 

 

合并排序

最后,归并排序是一种分而治之算法,它不断将数组分成两半,直到分割后的子数组只包含一个元素。从那里,它将两半重新合并在一起,并在合并时对值进行排序。

 

为了实现这个结果,您需要递归,这是一种方法调用自身的编程技术。它通常用于通过将问题划分为子问题来解决的情况,而子问题又可以使用相同的技术来解决。

 

基本情况无需调用递归措施即可返回值。调用自身的方法将不会继续运行其余代码,直到被调用的方法返回值。

 

例如,假设您想在聚会上为自己和朋友订购披萨。但是只有当你的朋友吃披萨时你才会订披萨,而且只有当你的朋友吃披萨时你的朋友才会吃披萨。这种情况一直持续到一位朋友说够了,并简单地说“好吧,我们点菜吧”。这种“好处”将会在朋友之间传递,最终传到你身上。

 

这种信息流类似于代码中递归的工作方式。递归方法不断调用自身,直到找到答案。每个人都代表着自己的使命。该方法不断调用自身,直到达到基本情况。在这个例子中,基本情况是第一个“Okay!”并返回到第一个呼叫。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部