public static void sort(int[] data, int start, int end)
{
if (start >= end)
{
return;
}
int left = start;
int right = end;
int pivot = data[left];
int current = right;
while (left < right)
{
if (left < current)
{
// right
if (pivot < data[right])
{
right--;
current = right;
continue;
} else
{
data[left] = data[right];
current = left+1;
left = current;
}
}
else
{
// left
if(data[left] < pivot)
{
left++;
current = left;
continue;
}
else
{
data[right] = data[left];
current = right-1;
right = current;
}
}
}
data[current] = pivot;
count += sort(data, start, current-1);
count += sort(data, current+1, end);
}
快速排序(QuickSort)
最新推荐文章于 2024-07-16 09:58:11 发布