C#快速排序法字符串数组
2018-07-20 来源:open-open
class Quicksort { private void quickSwap(string[] Array, int Left, int Right) { string Temp = Array[Right]; Array[Right] = Array[Left]; Array[Left] = Temp; } public void quickSort(string[] Array, int Left, int Right) { int LHold = Left; int RHold = Right; Random ObjRan = new Random(); int Pivot = ObjRan.Next(Left, Right); quickSwap(Array, Pivot, Left); Pivot = Left; Left++; while (Right >= Left) { int cmpLeftVal = Array[Left].CompareTo(Array[Pivot]); int cmpRightVal = Array[Right].CompareTo(Array[Pivot]); if ((cmpLeftVal >= 0) && (cmpRightVal < 0)) { quickSwap(Array, Left, Right); } else { if (cmpLeftVal >= 0) { Right--; } else { if (cmpRightVal < 0) { Left++; } else { Right--; Left++; } } } } quickSwap(Array, Pivot, Right); Pivot = Right; if (Pivot > LHold) { quickSort(Array, LHold, Pivot); } if (RHold > Pivot + 1) { quickSort(Array, Pivot + 1, RHold); } } }
快速排序简介:
快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
标签: swap
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
最新资讯
热门推荐