如何用c#实现递归排序

avatar
作者
筋斗云
阅读量:0

在C#中,可以使用递归方法来实现各种排序算法,例如快速排序、归并排序等。这里以快速排序为例,介绍如何使用C#实现递归排序:

  1. 首先,创建一个控制台应用程序项目。

  2. 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();         }     } } 
  1. 运行程序,你将看到以下输出:
原始数组: 10 7 8 9 1 5  排序后的数组: 1 5 7 8 9 10  

这个示例中,我们使用了快速排序算法对数组进行递归排序。QuickSort方法是递归的核心,它接受数组、低索引和高索引作为参数。Partition方法用于将数组划分为两部分,使得左边的元素小于枢轴元素,右边的元素大于枢轴元素。Swap方法用于交换数组中的两个元素。PrintArray方法用于打印数组。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!