A) Принцип : каждый раз выбирайте наименьший элемент из записей, которые будут отсортированы, и размещайте его в порядке в конце отсортированной последовательности, пока все записи не будут отсортированы. То есть каждая поездка выбирается в качестве записи I-TH в упорядоченной последовательности между N-I+1 (I = 1, 2, ... N-1) записями. Алгоритмы, основанные на этой идее, в основном включают в себя простую сортировку выбора, сортировку выбора деревьев и сортировку кучи. (Это только общая простая сортировка выбора)
б) Основная идея простого выбора сортировки : Учитывается массив: int [] arr = {n данных в нем}; В первый раз сортируйте, выберите самые маленькие данные в данных, которые будут сортированы ARR [1] ~ arr [n], и обменивайте их с помощью ARR [1]; Во второй раз выберите самые маленькие данные в данных, которые будут сортированы ARR [2] ~ arr [n], и обменивайте их с R [2]; И так далее, выберите самые маленькие данные в данных, которые будут отсортированы ARR [i] ~ arr [n], и обменивайте их с R [i] до тех пор, пока вся сортировка не будет завершена.
C) Пример : Array int [] arr = {5,2,8,4,9,1};
-------------------------------------------------------
Первый заказ: исходные данные: 528491
Минимальные данные 1, сначала положите 1, то есть 1 и 5 положения обмена,
Результат сортировки: 128495
-------------------------------------------------------
Второй заказ:
Сравниваются данные за пределами 1 {28495}, 2 - это наименьшее,
Результат сортировки: 128495
-------------------------------------------------------
Третий заказ:
Данные, отличные от 1 и 2, сравниваются {8495}, 4 минимальны, 8 и 4 обмениваются
Результат сортировки: 124895
-------------------------------------------------------
Четвертый заказ:
Другие данные, отличные от 1, 2, 4, сравниваются {895}, 5 минимально, 8 и 5 обмениваются
Результат сортировки: 124598
-------------------------------------------------------
Пятый заказ:
Другие данные, отличные от 1, 2, 4, 5, сравниваются, 8 минимальны, 8 и 9 обмениваются
Результат сортировки: 124589
-------------------------------------------------------
Примечание. Метод получения наименьшего числа в каждом порядке: для сравнения цикла определите третью переменную температуру. Сначала сравните первые два числа, поместите меньшее число в температуре, а затем используйте температуру, чтобы сравнить с оставшимися данными. Если данные меньше температуры, используйте их вместо исходных данных в Temp. Для получения подробной информации, ссылаясь на примеры кода ниже, я считаю, что вы выучили оператор для цикла, прежде чем научиться сортировать. Таким образом, здесь будет особенно легко понять.
Пример кода:
// Выберите Сортировать открытый класс SelectionSt {public static void main (string [] args) {int [] arr = {1,3,2,45,65,33,12}; System.out.println («До обмена:»); for (int num: arr) {System.out.print (num+""); } // Выберите оптимизацию сортировки для (int i = 0; i <arr.length - 1; i ++) {// Сортировать i -й порядок int k = i; for (int j = k+1; j <arr.length; j ++) {// Выберите наименьшую запись if (arr [j] <arr [k]) {k = j; // Обратите внимание на местонахождение минимального значения, найденного до сих пор}} // после окончания внутреннего цикла, то есть после поиска минимального количества этого цикла, затем обменивайтесь if (i! arr [i] = arr [k]; arr [k] = temp; }} System.out.println (); System.out.println («После обмена:»); for (int num: arr) {System.out.print (num+""); }}}Скриншот результата работы:
Выберите временную сложность сортировки: количество сравнений простых сортов выбора не имеет ничего общего с начальной сортировкой последовательности. Предполагая, что последовательность, которая будет отсортирована, имеет N-элементы, количество сравнений всегда будет N (N-1)/2. Количество движений связано с начальной сортировкой последовательности. Когда последовательность положительная, количество движений наименьшее, что является 0. Когда последовательность обратно последовательно, большинство движений-3N (N-1)/2.
Итак, в итоге, временная сложность простой сортировки - O (N2).