C# quick sort
1 static void QuickSortDemo() 2 { 3 int[] arr = new int[] { 2, 5, -4, 11, 0, 18, 22, 67, 51, 6 }; 4 5 Console.WriteLine("Original array : "); 6 foreach (var item in arr) 7 { 8 Console.Write(" " + item); 9 } 10 Console.WriteLine(); 11 12 QuickSort(arr, 0, arr.Length - 1); 13 14 Console.WriteLine(); 15 Console.WriteLine("Sorted array : "); 16 17 foreach (var item in arr) 18 { 19 Console.Write(" " + item); 20 } 21 } 22 23 static int Partition(int[] arr,int left,int right) 24 { 25 int key = arr[left]; 26 while(true) 27 { 28 while(arr[left]<key) 29 { 30 left++; 31 } 32 while(arr[right]>key) 33 { 34 right--; 35 } 36 if(left<right) 37 { 38 if(arr[left]==arr[right]) 39 { 40 return right; 41 } 42 int temp = arr[left]; 43 arr[left] = arr[right]; 44 arr[right] = temp; 45 } 46 else 47 { 48 return right; 49 } 50 } 51 } 52 53 static void QuickSort(int[] arr,int left,int right) 54 { 55 if(left<right) 56 { 57 int key = Partition(arr, left, right); 58 if(key>1) 59 { 60 QuickSort(arr, left, key - 1); 61 } 62 if(key+1<right) 63 { 64 QuickSort(arr, key + 1, right); 65 } 66 } 67 }
static int Partition(int[] arr,int low,int high) { int i = low; int j = high; int pivot = arr[low]; while(i<j) { while(i<j && arr[j]>=pivot) { j--; } if(i<j) { arr[i++] = arr[j]; } while(i<j && arr[i]<=pivot) { i++; } if(i<j) { arr[j--] = arr[i]; } } arr[i] = pivot; return i; } static void QuickSort(int[] arr,int low,int high) { int pivot; if(low<high) { pivot = Partition(arr, low, high); QuickSort(arr, low, pivot - 1); QuickSort(arr, pivot + 1, high); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现