Упражнения на Java: алгоритм сортировки Gnome
Алгоритм сортировки Java: упражнение 13 с решением
Напишите программу на Java для сортировки массива заданных целых чисел с помощью алгоритма сортировки Gnome.
Сортировка гномов - это алгоритм сортировки, первоначально предложенный доктором Хамидом Сарбази-Азадом (профессором вычислительной техники в Шарифском технологическом университете) в 2000 году и названный «глупой сортировкой» (не путать с богосортом), а затем описанный Диком. Грун и назвал "гномом рода".
Алгоритм всегда находит первое место, где два соседних элемента находятся в неправильном порядке, и меняет их местами. Он использует тот факт, что выполнение обмена может привести к появлению новой неупорядоченной соседней пары только рядом с двумя замененными элементами.
Визуализация вида гномов :
Пример решения:
Java-код:
import java.util.Arrays;
class gnomeSort {
void gnomeSort(int[] nums)
{
int i=1;
int j=2;
while(i < nums.length) {
if ( nums[i-1] <= nums[i] )
{
i = j; j++;
} else {
int tmp = nums[i-1];
nums[i-1] = nums[i];
nums[i--] = tmp;
i = (i==0) ? j++ : i;
}
}
}
// Method to test above
public static void main(String args[])
{
gnomeSort ob = new gnomeSort();
int nums[] = {7, -5, 3, 2, 1, 0, 45};
System.out.println("Original Array:");
System.out.println(Arrays.toString(nums));
ob.gnomeSort(nums);
System.out.println("Sorted Array");
System.out.println(Arrays.toString(nums));
}
}
Пример вывода:
Оригинальный массив: [7, -5, 3, 2, 1, 0, 45] Сортированный массив [-5, 0, 1, 2, 3, 7, 45]
Блок - схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите Java-программу для сортировки массива заданных целых чисел с помощью алгоритма CountingSort.
Далее: Напишите программу на Java для сортировки массива заданных целых чисел, используя алгоритм сортировки по Блину.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования