这里我们将了解砖块排序的工作原理。砖块排序是对冒泡排序的一种修改。该算法分为两部分:奇数部分和偶数部分。在奇数部分,我们将对奇数索引的项目使用冒泡排序,在偶数部分,我们将对偶数索引的元素使用冒泡排序。让我们看看算法来了解其思想。算法brickSort(arr, n)begin flag := false while flag为false,执行 flag := true for i := 1 to n-2,递增 ... 阅读更多
在本节中,我们将学习另一种著名的冒泡排序技术。我们已经以迭代的方式使用了冒泡排序。但是在这里,我们将看到冒泡排序的递归方法。递归冒泡排序算法如下所示。算法bubbleRec(arr, n)begin if n = 1,返回 for i in range 1 to n-2,执行 if arr[i] > arr[i+1],则 交换arr[i]和arr[i+1] end if done bubbleRec(arr, n-1) end示例 在线演示#include using namespace std; void recBubble(int arr[], int n){ if (n == 1) ... 阅读更多
这里我们将学习侏儒排序的工作原理。这是另一种排序算法。在这种方法中,如果列表已排序,则它将花费O(n)时间。因此,最佳情况下的时间复杂度为O(n)。但是平均情况和最坏情况下的复杂度为O(n^2)。现在让我们看看算法来了解这种排序技术的思想。算法gnomeSort(arr, n)begin index := 0 while index < n,执行 if index为0,则 index := index + 1 end if if arr[index] >= arr[index -1],则 ... 阅读更多