C#实现快速排序算法
以下是C#中的快速排序算法实现示例:
using System;class QuickSort
{// 快速排序入口函数public static void Sort(int[] array){QuickSortRecursive(array, 0, array.Length - 1);}// 递归函数实现快速排序private static void QuickSortRecursive(int[] array, int left, int right){if (left < right){int pivotIndex = Partition(array, left, right);QuickSortRecursive(array, left, pivotIndex - 1);QuickSortRecursive(array, pivotIndex + 1, right);}}// 划分函数private static int Partition(int[] array, int left, int right){int pivot = array[right];int i = left - 1;for (int j = left; j < right; j++){if (array[j] < pivot){i++;Swap(array, i, j);}}Swap(array, i + 1, right);return i + 1;}// 交换数组中的两个元素private static void Swap(int[] array, int i, int j){int temp = array[i];array[i] = array[j];array[j] = temp;}// 打印数组元素public static void PrintArray(int[] array){foreach (var item in array){Console.Write(item + " ");}Console.WriteLine();}// 测试示例static void Main(string[] args){int[] array = { 12, 4, 7, 2, 10, 1, 15, 3, 6, 11 };Console.WriteLine("Original array:");PrintArray(array);Sort(array);Console.WriteLine("Sorted array:");PrintArray(array);}
}
这段代码实现了快速排序算法。在 Sort
函数中,我们首先调用 QuickSortRecursive
函数来递归地执行快速排序。QuickSortRecursive
函数中,我们首先选择一个基准元素(这里选择数组的最后一个元素作为基准),然后根据基准元素将数组分为两部分,左侧部分小于基准,右侧部分大于等于基准。然后再分别对左右两部分递归执行快速排序。
Partition
函数负责实现划分步骤,它遍历数组,将小于基准的元素放在左侧,大于等于基准的元素放在右侧,并返回基准的最终位置。
Swap
函数用于交换数组中的两个元素。
PrintArray
函数用于打印数组元素。
在 Main
函数中,我们创建一个示例数组,并调用 Sort
函数对其进行排序,然后打印排序后的结果。