插入排序

2019-05-29  本文已影响0人  FunnyJustCL

对于少量元素的排序,插入排序是一个有效算法。插入排序的方式就算许多人排序一手扑克牌一样,开始时,我们的左手为空并且桌子上的牌面向下。然后我们每次从桌子上拿走一张牌并将它插入到左手中正确位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。

先给出Python的插入排序算法,此段代码实现降序排列

def Insert_sort_decline(A):
    for i in range(1,len(A)):
        key = A[i]
        j = i - 1
        while j >=0 and A[j] < key:
            A[j+1] = A[j]
            j = j - 1
        A[j+1] = key
    return A

解读代码:首先我们将第一个元素作为已经在‘左手中排好了扑克牌’,从第二个数开始,依次与已经排好了的数字进行比较。比如我们在排序第i个数字时,将第i个数字与排好了的前i-1个数字进行比较,并且每次在比较时我们都将当前值向右挪一个位置,这是为了在插入值时不会覆盖掉其他值。如果我们在比较到第j个数字时发现A[j] > A[i],此时我们就将A[i]赋值给A[j]。这样做下去遍历整个待排序数组,就能得到一个按降序排列的数组。

上一篇下一篇

猜你喜欢

热点阅读