欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > C# >内容正文

C#

C#快速排序

发布时间:2023/12/10 C# 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 C#快速排序 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace SortTry { public class QuickSort { /// <summary> /// 排序 /// </summary> /// <param name="numbers">待排序数组</param> /// <param name="left">数组第一个元素索引Index</param> /// <param name="right">数组最后一个元素索引Index</param> private static void Sort(int[] numbers, int left, int right) { //左边索引小于右边,则还未排序完成 if (left < right) { //取中间的元素作为比较基准,小于他的往左边移,大于他的往右边移 int middle = numbers[(left + right) / 2]; int i = left - 1; int j = right + 1; while (true) { while (numbers[++i] < middle && i < right) ; while (numbers[--j] > middle && j > 0) ; if (i >= j) break; Swap(numbers, i, j); } Sort(numbers, left, i - 1); Sort(numbers, j + 1, right); } } /// <summary> /// 交换元素值 /// </summary> /// <param name="numbers">数组</param> /// <param name="i">当前左边索引</param> /// <param name="j">当前右边索引</param> private static void Swap(int[] numbers, int i, int j) { int number = numbers[i]; numbers[i] = numbers[j]; numbers[j] = number; } public static void Main() { int[] max = { 6, 5, 2, 9, 7, 4, 0 }; Sort(max, 0, max.Length - 1); StringBuilder temp = new StringBuilder(); for (int i = 0; i < max.Length; i++) { temp.Append(max[i].ToString() + ","); } Console.WriteLine(temp.ToString().Substring(0, temp.Length - 1)); Console.ReadLine(); } } }

总结

以上是生活随笔为你收集整理的C#快速排序的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。