分而治之气泡排序算法

这学期我们了解了分而治之,其中将问题分为子问题,然后像合并排序或快速排序一样解决了。

尽管我并没有发布这个问题来让大家解决我的任务,但是我们的教授给了我们一个任务,以将Bubble Sort作为分治算法来实现,现在我坐在笔记本电脑上摸索了几天,以讨论Bubble Sort可以分治法。

如果我尝试实现气泡排序作为划分并征服数组,则必须将数组划分为,当我将数组划分为其最后一个元素,然后将其合并回其排序形式时,该算法将变为合并排序。
如果我通过递归调用bubbleSort(array,size-1)来实现,则算法将变为 Reduce and Conquer

我的问题是“ 如何将气泡排序作为分而治之的算法来实现?

zxxzsa 回答:分而治之气泡排序算法

假设您编写了一个bubblesort函数,可以对数组的一部分进行排序:

bubblesort(arr,start,end)
{
    // sorts the items from arr[start] to arr[end]
}

因此,如果您有数组[1,7,4,9,6,3,2,5]并命名为bubblesort(arr,3),则结果数组将为[1,5]

现在想象一下,如果您拨打这些电话会发生什么:

bubblesort(arr,1);
bubblesort(arr,3);
bubblesort(arr,5);
bubblesort(arr,7);

然后

bubblesort(arr,1,7);

最后,

bubblesort(arr,7);

与合并排序相同的调用模式,但绝对不是合并排序。

本文链接:https://www.f2er.com/2469468.html

大家都在问