python 实现插入排序算法

  • Post category:Python

插入排序是一种简单的排序算法,其基本思想是将未排序的元素逐个插入到已排序的序列中,直到所有元素都被插入为止。在本攻略中,我们将介绍如何使用Python实现插入排序算法的步骤,并提供两个示例说明。

插入排序算法步骤

插入排序算法的步骤如下:

  1. 从第一个元素开始,该元素可以认为已经被排序。
  2. 取出下一个素,在已经排序的元素序列中从后向前扫描。
    . 如果该元素(已排序)大于新元素,将该元素移到下一位置。
  3. 重复步骤3,直到找到已排序的元素小于或等于新元素的位置。
  4. 将新元素插入到该位置后。
  5. 重复步骤2~5,直到排序完成。

面我们将详细介绍每个步骤。

Python实现插入排序算法

以下是使用Python实现插入排序算法的示例代码:

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

在这个示例中,我们定义了一个名为insertion_sort的函数,该函数接受一个列表作为输入,并返回一个已排序的列表。在函数内部,我们使用了插入排序算法对列表进行排序。具体来说,我们使用了一个for循环来遍历列表中的每个元素,然后使用一个while循环来将该元素插入到已排序的序列中。在while循环中,我们将已排序的元素逐个向后移动,直到找到该元素应该插入的位置。最后,我们将该元素插入到该位置后,继续遍历下一个元素,直到所有元素都被插入为止。

示例说明

以下是使用插入排序算法对列表进行排序的示例代码:

# 示例1:对整数列表进行排序
arr1 = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_arr1 = insertion_sort(arr1)
print(sorted_arr1)

# 示例2:对字符串列表进行排序
arr2 = ['apple', 'banana', 'orange', 'pear', 'grape']
sorted_arr2 = insertion_sort(arr2)
print(sorted_arr2)

在这个示例中,我们使用了上面定义的insertion_sort函数对两个列表进行排序,并输出排序后的结果。在示例1中,我们对一个整数列表进行排序,并输出排序后的结果。在示例2中,我们对一个字符串列表进行排序,并输出排序后的结果。

结论

在本攻略中,我们介绍了如何使用Python实现插入排序算法的步骤,并提供了两个示例说明。我们使用Python的基本语法和循环结构实现了插入排序算法,并演示了如何使用该算法对整数列表和字符串列表进行排序。这些示例代码可以帮助学者更好地理解插入排序算法的实现和应用场景。