117.info
人生若只如初见

如何使用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.117.info/ask/fe4f5AzsMBwdXBA.html

推荐文章

  • C++中Memory Barrier的作用是什么

    在C++中,Memory Barrier(内存屏障)是一种同步原语,用于确保多线程之间的内存可见性和顺序性。它的作用主要有两个方面: 内存可见性:多线程环境下,每个线程...

  • c++中getline()的用法是什么

    在C++中,getline()是一个从输入流中读取一行文本的函数。它的用法如下:
    #include #include int main() { std::string line; std::getline(std::cin, line...

  • C#中databinder.eval的用法是什么

    在C#中,DataBinder.Eval方法用于从数据源中获取指定字段的值。
    语法如下:
    DataBinder.Eval(object container, string expression);
    参数说明:...

  • c++怎么定义动态数组

    在C++中,可以通过使用指针和new关键字来定义动态数组。下面是一个示例:
    #include int main() { int size; std::cout > size; // 使用new关键字创建动态数...

  • C#中有哪些排序方法可用

    在C#中,有多种排序方法可供使用,以下是一些常见的方法: Array.Sort():这是C#中最常用的排序方法之一,可以对数组进行升序排序。它使用了快速排序算法,平均时...

  • sizeof关键字在C语言中的其他用途有哪些

    sizeof关键字在C语言中除了用于计算变量或类型所占用的内存大小外,还有以下几种用途: 计算数组大小:sizeof可以用来计算数组所占用的内存大小。当sizeof应用于...

  • C语言sizeof关键字与宏定义的关系是什么

    sizeof关键字和宏定义在C语言中各自扮演着不同的角色,但它们之间也存在一定的联系。 sizeof关键字: sizeof是C语言中的一个运算符,用于计算数据类型或对象所占...

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

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