Ну, я знаю, что это своего рода странный вопрос, но я нашел это Java-код для алгоритма быстрой сортировки:QuickSort алгоритм объяснения
private static void quickSort (ArrayList <String> list, int first, int last){
int g = first;
int h = last;
int midIndex = (first + last)/2;
String dividingValue = list.get(midIndex);
do{
while (list.get(g).compareTo(dividingValue) < 0) g++;
while (list.get(h).compareTo(dividingValue) > 0) h--;
if (g <= h)
{
swap(list,g,h);
g++;
h--;
}
}
while (g < h);
if (h > first) quickSort (list,first,h);
if (g < last) quickSort (list,g,last);
}
private static void swap (ArrayList <String> list, int first, int h)
{
String temp = list.get(first);
list.set(first, list.get(h));
list.set(h, temp);
}
я работает, но это на самом деле не имеет смысла для меня. Может ли кто-нибудь объяснить мне этот код? Или дать более простой код для быстрой сортировки, если это возможно?
какая часть не имеет для вас никакого смысла? какая часть нуждается в объяснении? – zerocool
Я предлагаю работать над этим, комментируя все, что вы понимаете. Вы также должны убедиться, что понимаете концепцию быстрой сортировки. Если что-то осталось, что вы не понимаете, вы сможете задать более конкретный вопрос. –
Вы читали, например. http://en.wikipedia.org/wiki/Quicksort? –