当前位置: 首页 > 编程笔记 >

打印在C ++中给定排序算法失败的情况

昌乐
2023-03-14
本文向大家介绍打印在C ++中给定排序算法失败的情况,包括了打印在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
 类似资料:
  • 本文向大家介绍打印给定字符串的所有排列,包括了打印给定字符串的所有排列的使用技巧和注意事项,需要的朋友参考一下 打印给定字符串的所有排列是回溯问题的一个示例。我们将减小子字符串的大小以解决子问题,然后再次回溯以从该部分获得另一个排列。 例如,如果字符串是ABC,则所有排列将是ABC,ACB,BAC,BCA,CAB,CBA。 该算法的复杂度为O(n!)。这是一个巨大的复杂性。当字符串大小增加时,需要

  • 本文向大家介绍C#排序算法之堆排序,包括了C#排序算法之堆排序的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#实现堆排序的具体代码,供大家参考,具体内容如下 代码: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 以下是一个采访问题。 您将获得一个二叉树(不一定是BST),其中每个节点都包含一个值。设计一个算法来打印所有总计为该值的路径。注意,它可以是树中的任何路径-它不必从根开始。 虽然我能够找到树中从根开始的所有路径都有给定的总和,但对于不是从根开始的路径,我无法这样做。

  • 本文向大家介绍C#排序算法之归并排序,包括了C#排序算法之归并排序的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#实现归并排序具体代码,供大家参考,具体内容如下 代码: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 相信您已经掌握了很多种排序算法,比如冒泡排序、插入排序、希尔排序、选择排序等。这些排序算法中,有些是 "稳定" 的,有些是 "不稳定" 的。 给定的待排序序列中,经常会包含相同的元素,例如: 3 1 2 4 2 此序列中包含两个元素 2,为了区分它们,我们分别称它们为 "红 2" 和 "绿 2"。 评价一个排序算法是否稳定,是指该算法完成排序的同时,是否会改变序列中相同元素的相对位置。例如,上面序

  • 问题内容: 我正在为我的GCSE学习,其中一部分要求我打印按字母顺序排序的字典,并且打印内容应包含相关值。 我花了数小时试图找到答案,并浏览了该论坛上的各种帖子,但对于我的有限知识而言,大多数帖子太过复杂。 我可以打印按字母顺序排序的键,也可以打印排序后的值,但不能打印按字母顺序排序的键(附带值)。 这是我的简单测试代码 我需要打印带有值的排序键-怎么做? 问题答案: