кодесурса

Упражнения на Java: алгоритм сортировки сна

script1adsense2code
script1adsense3code

Алгоритм сортировки Java: упражнение 17 с решением

Напишите Java-программу для сортировки массива заданных неотрицательных целых чисел с помощью алгоритма сортировки сна.

В общем, спящая сортировка работает, запуская отдельную задачу для каждого сортируемого элемента, где каждая задача спит в течение интервала, соответствующего ключу сортировки элемента, а затем испускает элемент. Затем элементы собираются последовательно во времени.

Пример решения:

Java-код:

import java.util.concurrent.CountDownLatch;
 
public class SleepSort {
	public static void sleepSortAndPrint(int[] nums) {
		final CountDownLatch doneSignal = new CountDownLatch(nums.length);
		for (final int num : nums) {
			new Thread(new Runnable() {
				public void run() {
					doneSignal.countDown();
					try {
						doneSignal.await();
 
						//using straight milliseconds produces unpredictable
						//results with small numbers
						//using 1000 here gives a nifty demonstration
						Thread.sleep(num * 500);
						System.out.println(num);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}).start();
		}
	}
	public static void main(String[] args) {
		int[] nums ={7, 3, 2, 1, 0, 5};
		for (int i = 0; i < args.length; i++)
			nums[i] = Integer.parseInt(args[i]);
		sleepSortAndPrint(nums);
	}
}

Пример вывода:

 0
1
2
3
5
7

Блок - схема:

«Блок-схема:

Редактор кода Java:

Внесите свой код и комментарии через Disqus.

Предыдущая: Напишите Java-программу для сортировки массива заданных целых чисел Алгоритм сортировки оболочки.
Далее: Напишите программу на Java для сортировки массива заданных целых чисел с помощью алгоритма сортировки Stooge.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code