Vous êtes sur la page 1sur 2

public int[] array;

public int[] tempArr;


public int length;

public void sort(String inputArr[])


{
array = inputArr;
length = inputArr.length;
tempArr = new String[length];
doSort(0, length - 1);
}

private void doSort(int lowerIndex, int higherIndex)


{
if (lowerIndex < higherIndex)
{
int middle = lowerIndex + (higherIndex - lowerIndex) / 2;
doSort(lowerIndex, middle);
doSort(middle + 1, higherIndex);
doSomething(lowerIndex, middle, higherIndex);
}
}

private void doSomething(int lowerIndex, int middle, int higherIndex)


{
for (int i = lowerIndex; i <= higherIndex; i++)
{
tempArr[i] = array[i];
}
int i = lowerIndex;
int j = middle + 1;
int k = lowerIndex;

while (i <= middle && j <= higherIndex)


{
if (tempArr[i] <= tempArr[j])
{
array[k] = tempArr[i];
i++;
}
else {
array[k] = tempArr[j];
j++;
}
k++;
}
while (i <= middle)
{
array[k] = tempArr[i];
k++;
i++;
}
}

Vous aimerez peut-être aussi