如何使用 C# 在没有额外空间的情况下对数组(荷兰国旗)中的 0,1,2 进行排序?

如何使用 c# 在没有额外空间的情况下对数组(荷兰国旗)中的 0,1,2 进行排序?

我们需要三分球,低位、中位、高位。我们将在开头使用 low 和 mid 指针,而 high 指针将指向给定数组的末尾。

如果 array [mid] =0,则将 array [mid] 与 array [low] 交换] 并将两个指针递增一次。

如果 array [mid] = 1,则不需要交换。将中指针递增一次。

如果数组 [mid] = 2,则将数组 [mid] 与数组 [high] 交换,并将高指针递减一次。

时间复杂度 – O(N)

示例

 实时演示

using System;namespace ConsoleApplication{   public class Arrays{      private void Swap(int[] arr, int pos1, int pos2){         int temp = arr[pos1];         arr[pos1] = arr[pos2];         arr[pos2] = temp;      }      public void DutchNationalFlag(int[] arr){         int low = 0;         int mid = 0;         int high = arr.Length - 1;         while (mid 

输出

0 0 0 0 1 1 1 1 2 2 2

登录后复制

以上就是如何使用 C# 在没有额外空间的情况下对数组(荷兰国旗)中的 0,1,2 进行排序?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2431412.html

(0)
上一篇 2025年3月3日 08:37:46
下一篇 2025年2月23日 02:02:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • C# 程序找出 Sin(x) 的值

    简介 在本文中,我们将了解 C# 程序来找出 Sin(x) 的值。正弦是 Sin(x) 的另一个名称。这是一个三角角公式。角度的正弦是直角梯形中斜边长度与垂线长度的比例。强大的计算机语言 C# 可用于解决具有挑战性的数学问题。找出 sin(…

    2025年3月3日
    200
  • 如何在 C# 中比较两个元组?

    元组比较是在 C# 7.3 之后出现的。 使用 C# 中的相等运算符轻松比较两个元组。 假设我们有两个元组 – var one = (x: 1, y: 2);var two = (p: 1, 2: 3, r: 3, s:4); …

    2025年3月3日
    200
  • C# 相当于 Java 函数式接口

    Java 的函数式接口在 C# 中相当于 Delegate。 让我们看看 Java 中函数式接口的实现 – 示例 @FunctionalInterfacepublic interface MyInterface {   void…

    2025年3月3日
    200
  • 使用 C# 逐行读取文本文件的最快方法有哪些?

    有多种方法可以逐行读取文本文件。这些包括StreamReader.ReadLine、File.ReadLines 等。让我们考虑我们的文本文件中存在的文本文件。本地计算机具有如下所示的行。 使用 StreamReader.ReadLine …

    2025年3月3日
    200
  • C# 中的反射

    反射对象用于在运行时获取类型信息。允许访问正在运行的程序的元数据的类位于 System.Reflection 命名空间中。 以下是 Reflections 的应用 – 它允许在运行时查看属性信息。 它允许检查程序集中的各种类型并…

    2025年3月3日
    200
  • C# 中的泛型委托是什么?

    使用通用委托,您不需要定义委托语句。它们在系统命名空间中定义。 您可以使用类型参数定义通用委托。例如 – delegate T myDelegete(T n); 登录后复制 示例 以下示例展示了如何在 C# 中创建通用委托 &#…

    2025年3月3日
    200
  • C# 中的二维数组是什么?

    二维数组是一维数组的列表。 二维数组可以通过为每行指定括号内的值来初始化。 int [,] a = new int [2,2] {   {0, 1} ,   {4, 5}}; 登录后复制 以下示例展示了如何在 C# 中使用二维数组 &#82…

    2025年3月3日
    200
  • 在 C# 中不使用临时变量交换两个字符串

    要在不使用临时变量的情况下交换两个字符串,可以尝试以下代码和逻辑。 将第二个字符串附加到第一个字符串后面。 str1 = str1 + str2; 登录后复制 将str1设置为str2。 str2 = str1.Substring(0, s…

    2025年3月3日
    200
  • C#中有哪些类?

    定义类时,您就定义了数据类型的蓝图。对象是类的实例。构成类的方法和变量称为类的成员。 类定义以关键字 class 开头,后跟类名;以及由一对花括号括起来的类主体。以下是类定义的一般形式 – class class_name { …

    2025年3月3日
    200
  • 解释C#中的依赖注入

    依赖是另一个对象所依赖的一个对象。依赖注入(或反转)基本上是提供对象所需的对象,而不是让它自己构造对象。这是一种有用的技术,可以使测试变得更容易,因为它允许您模拟依赖关系。 例如,如果类 A 调用类 B 上的方法,而类 B 又调用类 C 上…

    2025年3月3日
    200

发表回复

登录后才能评论