Быстрая сортировка может чувствовать себя очень быстро, когда вы слышите это имя, но худший случай сложности времени его алгоритма совпадает с сортировкой вставки. Причина, по которой он становится быстрой, заключается в том, что его средняя эффективность быстрее, чем сортировка кучи. Нужно открыть новое место для хранения непосредственно в оригинальном массиве. Идея быстрой сортировки очень проста, которая состоит в том, чтобы выбрать ключевое слово k, чтобы разделить исходный массив на две части G1 и G2. К. Метод сортировки в коде - это описание заявления только сейчас. Ключевой алгоритм состоит в том, чтобы найти местоположение K и разделить исходный массив на две части. Получение метода является ядром быстрой сортировки. Его принцип реализации немного похож на сортировку вставки, но немного похож на. Каждый раз, когда элемент в конечной позиции используется в качестве ключевого слова. и J больше, чем ядро. Идите вперед. После того, как зацикливаться на этом, начало конец-1 разделяется по размеру.
Кода -копия выглядит следующим образом:
публичный класс QuickSort {
public int getPlocation (int [] map, int start, int end) {
int core = map [end];
int i = start-1;
for (int j = start; j <= end-1; j ++) {
if (map [j] <= core) {
i ++;
int cache = map [j];
map [j] = map [i];
карта [i] = cache;
}
}
i ++;
map [end] = map [i];
карта [i] = core;
вернуть я;
}
public void sort (int [] map, int start, int end) {
if (start <end) {
int p = getPlocation (карта, начало, конец);
Sort (Map, Start, P-1);
сортировка (карта, p+1, конец);
}
}
public static void main (string [] args) {
int [] map = new int [] {4,1,5,3,7,12,65,7};
QuickSort qs = new QuickSort ();
qs.sort (map, 0, map.length-1);
для (int i = 0; i <map.length; i ++) {
System.out.println (map [i]);
}
}
}