//这个是我测试了的快排算法,中间值只能放到后面的分区去做,最主要的就一分区,然后递归了/// /// QueckSort类 /// public class QueckSort { private void swap(ref int a, ref int b) { int temp = a; a = b; b = temp; } private int partion(int[] array, int low, int high) { int standValue = array[high]; int i = low; int j = low - 1; for (; i < high; i++) { if (array[i]<=standValue) { j++; if (i!=j) { swap(ref array[i], ref array[j]); } } } swap(ref array[j + 1],ref array[high]); return j; } public void Sort(int[] array, int low, int high) { if (low<high) { int middleIndex = partion(array, low, high); Sort(array, low, middleIndex); Sort(array, middleIndex +1, high); } } }
c#快排算法
最新推荐文章于 2024-07-24 22:13:06 发布