在这个问题上,我们得到一个排序算法和一个数字n。我们的任务是打印无法通过算法排序的n个元素的数组。即算法将失败。
loop i from 1 to n-1 loop j from i to n-1 if a[j]>a[i+1] swap(a[i], a[j+1])
让我们看一下这种排序算法,它使用两个嵌套循环。外部循环从1到n-1,内部循环从i到n-1,并且将在每次迭代时检查内部循环元素和外部循环元素的值,并交换顺序外的元素。
因此,在元素以相反顺序排序的情况下,该算法将失败。此外,我们仅在n <= 2时才能找到解决方案。
So, for n = 5. Output : 5 4 3 2 1 Time complexity − O(N)
该代码显示了我们解决方案的实施
#include <iostream> using namespace std; void invalidCase(int n) { if (n <= 2) { cout << -1; return; } for (int i = n; i >= 1; i--) cout<<i<<" "; } int main() { int n = 6; cout<<"The case in which the algorithm goes invalid for "<<n<<" element array is :\n"; invalidCase(n); return 0; }
输出结果
该算法对6个元素数组无效的情况是-
6 5 4 3 2 1