写一段c# 快速排序的代码
时间: 2023-07-05 22:31:31 浏览: 160
以下是 C# 中实现快速排序的代码:
```csharp
using System;
class QuickSort {
static void Main() {
int[] arr = { 5, 2, 4, 6, 1, 3 };
QuickSortFunc(arr, 0, arr.Length - 1);
Console.WriteLine(string.Join(", ", arr));
}
static void QuickSortFunc(int[] arr, int left, int right) {
if (left < right) {
int pivot = Partition(arr, left, right);
QuickSortFunc(arr, left, pivot - 1);
QuickSortFunc(arr, pivot + 1, right);
}
}
static int Partition(int[] arr, int left, int right) {
int pivot = arr[right];
int i = left - 1;
for (int j = left; j < right; j++) {
if (arr[j] < pivot) {
i++;
Swap(arr, i, j);
}
}
Swap(arr, i + 1, right);
return i + 1;
}
static void Swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
```
以上代码中,`QuickSortFunc` 是快速排序的主函数,它使用 `Partition` 函数将数组分成两部分。`Partition` 函数选择最右边的元素作为枢轴,然后将数组分为两部分,左边部分的元素小于枢轴,右边部分的元素大于或等于枢轴。最后,交换左边部分的最后一个元素和枢轴,返回枢轴的索引。
在 `QuickSortFunc` 函数中,如果左边索引小于右边索引,则对左边部分和右边部分进行递归排序。最后,输出排序后的数组。
值得注意的是,以上代码中使用了 `Swap` 函数来交换数组中两个元素的位置。
阅读全文