软件测试需知:什么是插入排序算法

插入排序:简单却高效的排序魔法

宝子们,今天咱们来聊聊算法世界里一个超实用又容易理解的排序方法——插入排序!它就像整理书架上的书籍一样,轻松让杂乱的数据变得井井有条。

什么是插入排序?

想象一下,你有一摞散乱的名片,现在要按照姓氏首字母顺序排列。你会怎么做呢?大概率是先拿起一张名片,然后在已排好序的那部分名片里找到合适的位置插入,再拿起下一张,重复这个过程,直到所有名片都排好序。插入排序的原理就和这差不多,它把数组分成已排序和未排序两部分,每次从未排序部分取出第一个元素,在已排序部分找到合适的位置插入。

算法步骤大揭秘

1. 初始化:把数组的第一个元素看作是已经排好序的部分,剩下的元素就是未排序部分。

2. 遍历未排序元素:从第二个元素开始,依次处理未排序部分的每个元素。

3. 寻找插入位置:对于当前要处理的元素,从已排序部分的末尾开始向前比较,如果已排序部分的元素比当前元素大,就把这个元素向后移动一位,给当前元素腾出位置。

4. 插入元素:当找到一个比当前元素小或者等于的元素时,就把当前元素插入到这个位置的后面。

5. 重复操作:直到未排序部分的所有元素都被处理完,整个数组就排好序啦!

代码示例(Python版)

【python】

def insertion_sort(arr):

for i in range(1, len(arr)):

key = arr[i]

j = i - 1

while j >= 0 and key < arr[j]:

arr[j + 1] = arr[j]

j -= 1

arr[j + 1] = key

return arr

# 测试代码

arr = [12, 11, 13, 5, 6]

print("排序前:", arr)

sorted_arr = insertion_sort(arr)

print("排序后:", sorted_arr)

插入排序的优缺点

优点

o 简单易懂:算法逻辑清晰,容易实现,非常适合初学者理解排序的基本思想。

o 对小规模数据高效:当数据量较小时,插入排序的性能往往比一些复杂的排序算法还要好。

o 稳定排序:相同元素的相对顺序在排序前后不会改变。

缺点

o 时间复杂度较高:在最坏情况下(数组是逆序的),时间复杂度为O(n^2),对于大规模数据来说,效率会比较低。

宝子们,插入排序虽然简单,但在很多场景下都能发挥大作用哦!赶紧动手试试,把这个排序魔法收入囊中吧♂!

#插入排序 #算法学习 #编程技巧#软件测试 #自学软件测试

原文链接:,转发请注明来源!