欢迎访问宙启技术站
智能推送

Python中如何使用函数实现插入排序算法?

发布时间:2023-07-01 16:52:39

插入排序算法是一种简单直观的排序算法,其思想是将待排序序列分为已排序和未排序两部分,每次将未排序的元素插入到已排序的序列中的适当位置,以此类推直到整个序列有序。下面是使用函数实现插入排序算法的步骤。

1. 创建一个包含待排序元素的列表。

2. 定义一个函数insertion_sort,该函数接受一个列表作为参数。

3. 在insertion_sort函数内部,使用for循环遍历待排序元素,从第二个元素开始。

4. 在for循环内部,定义一个变量current_value,用于存储当前待排序元素的值。

5. 定义一个变量position,初始值为当前待排序元素的索引-1。

6. 使用while循环来比较当前元素与已排序序列中的元素,如果已排序序列中的元素大于当前元素,则将已排序序列中的元素向后移动一位。

7. 在while循环内部,将position的值减1,以便比较已排序序列中的下一个元素。

8. 退出while循环后,将当前元素插入到position的位置。

9. 在for循环结束后,返回已排序的列表。

下面是使用函数实现插入排序算法的示例代码:

def insertion_sort(arr):
    for i in range(1, len(arr)):
        current_value = arr[i]
        position = i - 1

        while position >= 0 and arr[position] > current_value:
            arr[position + 1] = arr[position]
            position = position - 1

        arr[position + 1] = current_value

    return arr

# 测试插入排序算法
arr = [5, 2, 8, 10, 1, 4]
print("待排序序列:", arr)
sorted_arr = insertion_sort(arr)
print("排序后序列:", sorted_arr)

上述代码首先定义了一个insertion_sort函数,在函数内部使用for循环来遍历待排序元素。然后,使用while循环来将当前元素插入到合适的位置。最后,返回已排序的列表。在示例代码中,输出结果为[1, 2, 4, 5, 8, 10],表示插入排序算法成功地对待排序序列进行了排序。

总结:通过将待排序序列分为已排序和未排序两部分,插入排序算法通过将未排序元素插入到已排序序列的适当位置来实现排序。在Python中,可以使用函数来实现插入排序算法,通过for循环和while循环来遍历待排序元素和已排序序列,从而实现插入操作。插入排序算法简单直观,适用于小规模的数据排序。