Я анализирую алгоритмы сортировки и столкнулся с проблемой быстрой сортировки. Ища некоторые диаграммы в Интернете, я увидел, что моя диаграмма значительно отличается от других диаграмм, и я хочу знать, почему.
Это мой код:
static int Particao(int[] vet, int min, int max, int modo)
{
int i = min;
int j = max;
int pivot;
if (modo == 0)
pivot = vet[(min + max) / 2];
else
pivot = vet[min];
while (i <= j)
{
while (vet[i] < pivot)
i++;
while (vet[j] > pivot)
j--;
if (i <= j)
{
int aux = vet[i];
vet[i] = vet[j];
vet[j] = aux;
i++;
j--;
}
};
return i;
}
static void QuickSort(int[] vet, int ini, int fim)
{
int pivo = Particao(vet, ini, fim, 0);
if (ini < pivo - 1)
QuickSort(vet, ini, pivo - 1);
if (pivo < fim)
QuickSort(vet, pivo, fim);
}
Мой график (время указано в мс и умножено на 1000):
Спасибо =)