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