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

   2024-09-29 7240
核心提示:在C#中,可以使用递归方法实现快速排序算法。以下是一个简单的示例:using System;class QuickSortExample{static void Main(){i

在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方法用于将数组划分为两个部分,使得左边的元素小于枢轴元素,右边的元素大于枢轴元素。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号