legongju.com
我们一直在努力
2025-01-08 05:14 | 星期三

如何使用C#进行快速排序

在C#中,可以使用递归方法实现快速排序算法。以下是一个简单的示例:

using System;

class QuickSortExample
{
    static void Main()
    {
        int[] arr = { 10, 7, 8, 9, 1, 5 };
        int n = arr.Length;

        QuickSort(arr, 0, n - 1);

        Console.WriteLine("Sorted array:");
        for (int i = 0; i < n; i++)
            Console.Write(arr[i] + " ");
        Console.ReadLine();
    }

    static void QuickSort(int[] arr, int low, int high)
    {
        if (low < high)
        {
            int pi = Partition(arr, low, high);

            QuickSort(arr, low, pi - 1);
            QuickSort(arr, pi + 1, high);
        }
    }

    static int Partition(int[] arr, int low, int high)
    {
        int pivot = arr[high];
        int i = (low - 1);

        for (int j = low; j <= high - 1; j++)
        {
            if (arr[j] < pivot)
            {
                i++;

                // swap arr[i] and arr[j]
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }

        // swap arr[i+1] and arr[high] (or pivot)
        int temp = arr[i + 1];
        arr[i + 1] = arr[high];
        arr[high] = temp;

        return (i + 1);
    }
}

在这个示例中,我们定义了一个名为QuickSort的方法,它接受一个整数数组、一个低索引和一个高索引作为参数。这个方法将数组划分为两个部分,然后递归地对这两个部分进行排序。Partition方法用于将数组划分为两个部分,使得左边的元素小于枢轴元素,右边的元素大于枢轴元素。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/79173.html

相关推荐

  • C++中多线程结果同步问题

    C++中多线程结果同步问题

    在C++中,多线程结果同步是一个常见的问题。当多个线程并发地访问和修改共享数据时,可能会导致数据不一致和竞态条件。为了解决这个问题,我们需要使用同步机制来...

  • 异常情况下C++结果的处理

    异常情况下C++结果的处理

    在C++中,处理异常情况通常使用异常处理机制 引入头文件:为了使用异常处理,需要引入头文件。 #include
    #include 抛出异常:当程序遇到异常情况时,可以使...

  • C++中结果类型转换的方法

    C++中结果类型转换的方法

    在C++中,有多种方法可以将一种数据类型转换为另一种数据类型。这些方法包括: 隐式类型转换(Implicit Conversion):
    当编译器自动执行类型转换时,会发生...

  • 如何处理C++中的运算结果

    如何处理C++中的运算结果

    在 C++ 中,处理运算结果通常涉及到以下几个方面: 数据类型和运算符优先级:确保正确使用数据类型(例如 int、float、double 等)以及运算符优先级,以避免因为...

  • c#临时变量在不同场景下的应用

    c#临时变量在不同场景下的应用

    在C#编程中,临时变量(也称为局部变量)是在特定代码块内声明的变量,用于存储临时数据。它们在不同场景下的应用场景如下: 方法调用:当方法需要返回一个值时,...

  • 如何正确管理c#中的临时变量

    如何正确管理c#中的临时变量

    在C#中,管理临时变量主要涉及到以下几点: 明确变量的作用域:临时变量通常只在某个特定代码块内有效,例如在if语句、for循环或方法内。确保在使用临时变量时,...

  • c#临时变量命名有哪些规范

    c#临时变量命名有哪些规范

    在C#中,临时变量的命名应遵循以下规范: 使用小写字母作为变量名的前缀。
    使用下划线(_)作为变量名中的连接符。
    变量名的长度不应过长,通常建议使...

  • c#中何时使用临时变量最佳

    c#中何时使用临时变量最佳

    在C#中,使用临时变量的最佳时机取决于具体情况和代码的可读性。以下是一些建议,可以帮助你确定何时使用临时变量: 提高代码可读性:当某个值在代码中多次使用时...