打印在C ++中给定排序算法失败的情况
在这个问题上,我们得到一个排序算法和一个数字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
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短