Метод быстрой сортировки в основном использует Arrays.sort () для его реализации.
Метод пузырьков состоит в том, чтобы использовать массивы обхода для сравнения и пересечение минимальных или максимальных значений один за другим через непрерывное сравнение.
Метод сортировки выбора состоит в том, чтобы использовать первые данные массива в качестве наибольшего или наименьшего значения, а затем вывести упорядоченный массив через цикл сравнения.
Вставка сортировки - это выбрать данные в массиве и сортировать их в конце, постоянно вставляя и сравнивая их.
Кода -копия выглядит следующим образом:
пакет com.firewolf.sort;
открытый класс MySort {
/**
* @param args
*/
public static void main (string [] args) {
int array [] = {45,32,54,12,43,65,11,3,43,6,33,90,44,1,178};
Mysort mysort = new MySort ();
mysort.insertsort (массив);
System.out.print («Вставьте результат сортировки:»);
mysort.printarray (массив);
System.out.println ();
mysort.bubblesort (массив);
System.out.print («Результат сортировки пузырьков:»);
mysort.printarray (массив);
mysort.qsort (массив);
System.out.println ();
System.out.print ("Quick Sort Result:");
mysort.printarray (массив);
mysort.shellsort (массив);
System.out.println ();
System.out.print ("Результат сортировки холма:");
mysort.printarray (массив);
mysort.selectsort (массив);
System.out.println ();
System.out.print («Выберите Sort Result:»);
mysort.printarray (массив);
}
/**
* Прямая вставка сортировка
* Основная идея: в наборе чисел, которые будут отсортированы, предполагая, что предыдущие (n-1) [n> = 2] уже в порядке, теперь вам нужно вставить N-й номер в упорядоченный номер в предыдущем порядке . Повторите этот цикл, пока все не будут расположены в порядке
*/
public void insertsort (int [] array) {
int temp = 0;
для (int i = 1; i <array.length; i ++) {
int j = i-1;
temp = array [i];
for (; j> = 0 && temp <array [j]; j-) {
Массив [j+1] = массив [j];
}
массив [j+1] = temp;
}
}
/**
* Пузырьковые сортировки
* Основная идея: в наборе чисел, которые должны быть отсортированы, сравните и отрегулируйте два соседних числа сверху вниз, чтобы сделать более крупные цифры, чтобы погрузиться, меньшие поднимаются. То есть всякий раз, когда сравниваются два смежных числа и обнаруживали, что их сортировка противоположна требованиям сортировки, они взаимозаменяются.
*/
public void bubblesort (int [] array) {
int temp;
для (int i = 0; i <array.length; i ++) {// количество поездок
for (int j = 0; j <array.length-i-1; j ++) {// количество сравнений
if (array [j]> array [j+1]) {
temp = array [j];
массив [j] = массив [j+1];
массив [j+1] = temp;
}
}
}
}
/**
* Быстрая сортировка
* Основная идея: выберите контрольный элемент, обычно первый элемент или последний элемент, и через сканирование разделите последовательность, которая будет сортироваться на две части. Элемент.
* @param массив
*/
public void qsort (int array []) {
if (array.length> 1) {
_qsort (массив, 0, array.length-1);
}
}
/**
* Быстрая сортировка для одной поездки
* @param массив
*/
private void _qsort (int [] массив, int low, int high) {
if (low <High) {
int middle = getMiddle (массив, низкий, высокий);
_qsort (массив, низкий, средний 1);
_qsort (массив, средний+1, высокий);
}
}
/**
* Получите промежуточное значение
*/
private int getMiddle (int [] массив, int low, int high) {
int tmp = массив [low];
while (Low <High) {
while (low <high && array [high]> = tmp)
Высокий--;
массив [low] = массив [High];
while (low <high && array [low] <= tmp)
low ++;
Array [High] = массив [low];
}
массив [low] = tmp;
вернуться низко;
}
/**
* Простая сортировка выбора
* Основная идея: среди набора чисел, которые должны быть сортированы, выберите наименьшее число и обменяйте его с номером в первой позиции; Путь до предпоследнего числа не будет сравниваться с последним номером.
* @param массив
*/
public void selectsort (int [] array) {
int position = 0;
для (int i = 0; i <array.length; i ++) {
int j = i+1;
позиция = i;
int temp = array [i];
for (; j <array.length; j ++) {
if (array [j] <temp) {
temp = array [j];
позиция = j;
}
}
массив [позиция] = массив [i];
массив [i] = temp;
}
}
/**
* Сорт холмов (минимальный инкрементный сортирование)
* Основная идея: алгоритм сначала делит количество, которое будет отсортировано на несколько групп в соответствии с определенным приращением D (N/2, N - это количество чисел, которые будут отсортированы), а подписки, записанные в каждой группе, отличаются от D. Для каждой группы все элементы отсортируются непосредственно, затем сгруппируются с меньшим приращением (D/2), а затем отсортируются непосредственно в каждой группе. Когда приращение уменьшается до 1, сортировка завершается после выполнения прямой вставки.
* @param массив
*/
public void shellsort (int [] массив) {
Double D1 = Array.Length;
int temp = 0;
while (true) {
d1 = math.ceil (d1/2);
int d = (int) d1;
for (int x = 0; x <d; x ++) {
for (int i = x+d; i <array.length; i+= d) {
int j = id;
temp = array [i];
for (; j> = 0 && temp <array [j]; j- = d) {
массив [j+d] = массив [j];
}
массив [j+d] = temp;
}
}
if (d == 1)
перерыв;
}
}
/**
* Распечатайте все элементы в массиве
*/
public void printarray (int [] array) {
для (int i = 0; i <array.length; i ++) {
System.out.print (массив [i]+"");
}
}
}
Вот несколько примеров методов сортировки, используемых отдельно
Быстрая сортировка с использованием метода сортировки с массивами
Кода -копия выглядит следующим образом:
импортировать java.util.arrays;
открытый класс Test2 {
public static void main (string [] args) {
int [] a = {5,4,2,4,9,1};
Arrays.sort (A);
для (int i: a) {
System.out.print (i);
}
}
}
Алгоритм сортировки пузыря
Кода -копия выглядит следующим образом:
Public Static Int [] Bubblesort (int [] args) {// Алгоритм сортировки пузырьков
для (int i = 0; i <args.length-1; i ++) {
for (int j = i+1; j <args.length; j ++) {
if (args [i]> args [j]) {
int temp = args [i];
args [i] = args [j];
args [j] = temp;
}
}
}
вернуть Args;
}
Выберите алгоритм сортировки
Кода -копия выглядит следующим образом:
public static int [] selectsort (int [] args) {// Выбрать алгоритм сортировки
для (int i = 0; i <args.length-1; i ++) {
int min = i;
for (int j = i+1; j <args.length; j ++) {
if (args [min]> args [j]) {
min = j;
}
}
if (min! = i) {
int temp = args [i];
args [i] = args [min];
args [min] = temp;
}
}
вернуть Args;
}
Вставьте алгоритм сортировки
Кода -копия выглядит следующим образом:
public static int [] insertsort (int [] args) {// вставить алгоритм сортировки
для (int i = 1; i <args.length; i ++) {
for (int j = i; j> 0; j-) {
if (args [j] <args [j-1]) {
int temp = args [j-1];
args [j-1] = args [j];
args [j] = temp;
} else Break;
}
}
вернуть Args;
}
Выше приведены четыре метода сортировки в Java. Различные методы имеют различную эффективность.
Сорта пузырьков: сравнение O (N2) Обмен данных O (N2)
Выберите сортировку: сравните O (n2) Обмен данными O (n)
Вставьте сортировку: сравните O (n2) Копировать данные O (n)
В практических приложениях мы должны попытаться выбрать эффективные алгоритмы.