如果减少一种策略的定义是:
“一种在每次迭代中将要解决的问题的大小稳步减少一个元素的策略。”
这是否意味着插入排序不会减少一种算法?由于需要比较已经排序的所有元素,因此需要花费更多的迭代才能对每个元素进行排序。
还是该定义涉及这样一个事实,即它通过对每个元素进行逐一排序的迭代来进行迭代?
根据该定义,由于您已经提到的原因,我想说的是插入排序不是逐个减少算法。也就是说,在对较小的数据子集执行一次算法之后,您将无法调用插入排序方法,因为您需要所有数据来进行插入。
我相信该定义并不涉及“一种算法逐个迭代遍历每个元素”的事实,因为大多数涉及数组的算法都会这样做,而是将问题分解为一个较小的子问题,可以用完全相同的方式解决方式,但数据较少。冒泡排序是一种“减一”算法,因为在每次通过时,我们都会将最大元素放在适当的位置,然后我们N-1以完全相同的方式对其余元素进行冒泡排序。
N-1