数据结构&算法 插入排序
-
插入排序
插入排序是一个基于就地比较的排序算法。这里维护了一个总是排序的子列表。例如,数组的下半部分保持为排序。要在这个排序的子列表中“插入”的元素必须找到合适的位置,然后必须插入到那里。因此命名为插入排序。数组按顺序搜索,未排序的项被移动并插入到已排序的子列表中(在同一个数组中)。该算法不适合大型数据集的平均和最坏情况的复杂性Ο(n2),其中n是项的数量。 -
插入排序如何工作?
我们以未排序的数组为例。插入排序比较前两个元素。它发现14和33都已经按升序排列。目前,已排序的子列表中有14个。插入排序前进,将33与27进行比较。并发现33位置不正确。它将33与27交换。它还将检查已排序子列表的所有元素。在这里,我们看到排序后的子列表只有一个元素14,而27大于14。因此,排序后的子列表在交换后仍保持排序。到目前为止,我们在排序后的子列表中有14和27。接下来,将33与10进行比较。这些值不是按排序的顺序。因此,我们交换它们。但是,交换使27和10未排序。-因此,我们也交换它们。同样,我们以未排序的顺序找到14和10。我们再次交换它们。到第三次迭代结束时,我们有了一个包含4个项目的排序子列表。该过程一直进行到所有未排序的值都包含在已排序的子列表中为止。现在我们将看到插入排序的一些编程方面。 -
算法
现在,我们对这种排序技术的工作原理有了更全面的了解,因此我们可以推导简单的步骤来实现插入排序。 -
伪码
-