阅读量:0
在C#中,可以使用递归方法来实现各种排序算法,例如快速排序、归并排序等。这里以快速排序为例,介绍如何使用C#实现递归排序:
首先,创建一个控制台应用程序项目。
在
Program.cs
文件中,编写以下代码:
using System; namespace RecursiveSort { class Program { static void Main(string[] args) { int[] arr = { 10, 7, 8, 9, 1, 5 }; Console.WriteLine("原始数组:"); PrintArray(arr); QuickSort(arr, 0, arr.Length - 1); Console.WriteLine("\n排序后的数组:"); PrintArray(arr); } static void QuickSort(int[] arr, int low, int high) { if (low < high) { int pivotIndex = Partition(arr, low, high); QuickSort(arr, low, pivotIndex - 1); QuickSort(arr, pivotIndex + 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, j); } } Swap(arr, i + 1, high); return (i + 1); } static void Swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } static void PrintArray(int[] arr) { for (int i = 0; i < arr.Length; i++) { Console.Write(arr[i] + " "); } Console.WriteLine(); } } }
- 运行程序,你将看到以下输出:
原始数组: 10 7 8 9 1 5 排序后的数组: 1 5 7 8 9 10
这个示例中,我们使用了快速排序算法对数组进行递归排序。QuickSort
方法是递归的核心,它接受数组、低索引和高索引作为参数。Partition
方法用于将数组划分为两部分,使得左边的元素小于枢轴元素,右边的元素大于枢轴元素。Swap
方法用于交换数组中的两个元素。PrintArray
方法用于打印数组。