C#实现快速排序:递归、分区与交换的高效排序魔法
快速排序是一种高效的排序算法,它采用分治法(Divide and Conquer)策略来对一个数组进行排序。以下是用C#实现的快速排序代码示例: ```csharp using System; class Program { static void Main() { int[] array = { 10, 7, 8, 9, 1, 5 }; QuickSort(array, 0, array.Length - 1); Console.WriteLine("Sorted array: " + string.Join(", ", array)); } static void QuickSort(int[] array, int low, int high) { if (low < high) { int pi = Partition(array, low, high); QuickSort(array, low, pi - 1); QuickSort(array, pi + 1, high); } } static int Partition(int[] array, int low, int high) { int pivot = array[high]; int i = (low - 1); // Index of smaller element for (int j = low; j <= high - 1; j++) { // If current element is smaller than or equal to pivot if (array[j] <= pivot) { i++; Swap(ref array[i], ref array[j]); } } Swap(ref array[i + 1], ref array[high]); return (i + 1); } static void Swap(ref int a, ref int b) { int temp = a; a = b; b = temp; } } ``` 逻辑点: 1. 递归调用:`QuickSort`函数通过递归调用自身来处理子数组。 2. 分区操作:`Partition`函数将数组分为两部分,并返回枢轴元素的最终位置。 3. 元素交换:`Swap`函数用于交换两个元素的位置。 ######[AI写代码神器 | 483点数解答 | 2025-04-21 16:41:25]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)368
- C++ 实现:轻松找出 n 个整数中的第二小值(字节豆包 | 260点数解答 | 2026-02-07 21:19:29)39
- C++实现找出数组中第二小的值(字节豆包 | 526点数解答 | 2026-03-27 19:40:26)21
- 找出数组中第二小值的C++代码实现(字节豆包 | 696点数解答 | 2026-03-28 19:40:41)17
- C++实现数组特定位置最小值交换并输出指定元素(字节豆包 | 607点数解答 | 2026-04-04 19:31:04)20
- C++实现找出n个整数中第二小的值(字节豆包 | 361点数解答 | 2026-04-06 20:52:02)18
- 巴黎奥运:中国女排淘汰赛对决土耳其,朱婷成致胜关键!(字节豆包 | 448点数解答 | 2024-08-06 15:59:48)176
- Python 实现:带边界处理与验证的任意基数数字转换递归程序(字节豆包 | 198点数解答 | 2024-11-21 14:20:25)449
- Python 递归函数实现:将数字转换为指定基数的输出(百度文心 | 499点数解答 | 2024-11-22 09:58:55)350
- 编程模拟:偶数张牌经 k 次洗牌后第 p 张牌编号求解(DeepSeek | 126点数解答 | 2026-01-05 12:15:30)40
- 螺旋矩阵:根据输入行列号精准求出对应位置数字的算法揭秘(DeepSeek | 740点数解答 | 2026-01-05 12:16:41)63
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)338