В этой статье описывается метод реализации сортировки сортировки обмена Java. Поделитесь этим для вашей ссылки. Детали следующие:
Сорта по паритету, или сортировка транспозиции паритета или кирпичная сортировка - это относительно простой алгоритм сортировки, который первоначально был изобретен для параллельных вычислений с локальными соединениями. Это сравнительная сорта, аналогичная характеристикам сортировки пузырьков.
В этом алгоритме, сравнивая соседние (нечетные-даже) числовые пары положения в массиве, если пара нечетного даже находится в неправильном порядке (первый больше, чем второй), затем обменивается. Повторите следующий шаг, но для всех (даже не сдвигающихся) цифровых пар. Продолжайте так попеременно.
Сортировка массивов процессоров
В параллельной сортировке вычислений каждый процессор обрабатывает одно значение, соответствующее ему и имеет только локальные соединения с левыми и правыми соседями. Все процессоры могут сравнивать и обмениваться операциями с соседями одновременно, поочередно, в нечетном даже даже-удвождении. Алгоритм был первоначально опубликован Хаберманом в 1972 году и продемонстрировал ее эффективность в параллельной обработке.
Алгоритм может быть эффективно расширен на случаи, когда каждый процессор имеет несколько значений. В алгоритме разделения Baadetstevenson слияния каждого процессора сортирует подражание, которыми он владеет на каждом шаге, а затем выполняет раздел слияния или транспозицию, объединяющуюся с соседями.
Паритет парковки и даже сортировка
Сортировка паритета партий является релевантным, но более эффективным алгоритмом сортировки, который использует сравнение и совершенные операции.
Подход Пакера очень эффективен для процессоров параллельных вычислений с обширной взаимосвязкой.
Худшая сложность времени/тета (n^2)
Динамический график сортировки паритета выглядит следующим образом:
Реализация кода:
Пакет com.baobaotao.test; : pre "> </span> * @param array <span style =" Белое пространство: pre "> </span> */public static void packersort (int [] array) {int length = array.length; логический флаг = true; , i+1); , i+1); обменять b * @param c число, которое будет обменять C */ public static void swap (int [] a, int b, int c) {int temp = 0; ] a [c]) {temp = a [b]; prantarr (int [] array) {for (int c: array) {System.out.print (c + ""); [] number = {11,95,45,15,78,84,51,24,12};Анализ вывода:
11 45 15 95 51 78 12 84 2411 15 45 51 12 95 24 78 8411 15 12 45 24 51 78 95 8411 12 15 24 45 51 78 84 95
Я надеюсь, что эта статья будет полезна для всех Java Programming.