快速排序的C#最佳实践代码
以下是快速排序的C#最佳实践代码:
public static void QuickSort(int[] arr, int left, int right)
{
if (left < right)
{
int pivot = Partition(arr, left, right);
QuickSort(arr, left, pivot - 1);
QuickSort(arr, pivot + 1, right);
}
}
private 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++;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int temp1 = arr[i + 1];
arr[i + 1] = arr[right];
arr[right] = temp1;
return i + 1;
}
这段代码使用了递归方式实现快速排序,其中Partition函数用于找到枢轴点并将数组划分为两个子数组。快速排序是一种高效的排序算法,时间复杂度为O(nlogn)。
原文地址: https://www.cveoy.top/t/topic/nOY 著作权归作者所有。请勿转载和采集!