C#快速排序
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace SortTry { public class QuickSort { /// <summary> /// 排序 /// </summary> /// <param name="numbers">待排序數(shù)組</param> /// <param name="left">數(shù)組第一個元素索引Index</param> /// <param name="right">數(shù)組最后一個元素索引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">數(shù)組</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(); } } }
namespace SortTry { public class QuickSort { /// <summary> /// 排序 /// </summary> /// <param name="numbers">待排序數(shù)組</param> /// <param name="left">數(shù)組第一個元素索引Index</param> /// <param name="right">數(shù)組最后一個元素索引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">數(shù)組</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(); } } }
總結
- 上一篇: 图数据库neo4j安装、neo4j使用
- 下一篇: C# IIS配置错误定义了重复的“sys