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

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

广告一刻

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