offer() в PriorityQueue, похоже, выполняется быстрее по мере увеличения размера очереди.
Результаты теста
Я реализовал минимальную кучу в Java и хотел проверьте временную сложность вставки в него. Результаты были очень странными, так как казалось, что вставка происходит быстрее, чем больше куча, хотя количество свопов (плаваний) больше.
Я подумал, что в моем файле может быть ошибка. реализации, поэтому я попробовал PriorityQueue в JCF, и, к моему удивлению, результаты оказались такими же!
Вот тест, который я написал для расчета времени.
public static void main(String[] args) {
PriorityQueue p = new PriorityQueue(200000000); //capacity: 200 Million
int n = 100000000;
for(int i = 0; i < n; i++){
p.offer(100 + Math.random() * 10000);
}
int numOfInsertions = 5;
long start = System.nanoTime();
p.offer(Math.random() * 100); //inserted elements are less than all elements
p.offer(Math.random() * 100);//in the heap, to ensure a full swim all the way up
p.offer(Math.random() * 100);//to the root
p.offer(Math.random() * 100);
p.offer(Math.random() * 100);
long end = System.nanoTime();
System.out.println((end - start)/numOfInsertions);
System.out.println(p.peek()); //ensure that the elements less than 100
//were inserted
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ets-larger
Вставка в двоичную кучу происходит быстрее по мере увеличения размера кучи? ⇐ JAVA
Программисты JAVA общаются здесь
1730194695
Anonymous
offer() в PriorityQueue, похоже, выполняется быстрее по мере увеличения размера очереди.
Результаты теста
Я реализовал минимальную кучу в Java и хотел проверьте временную сложность вставки в него. Результаты были очень странными, так как казалось, что вставка происходит быстрее, чем больше куча, хотя количество свопов (плаваний) больше.
Я подумал, что в моем файле может быть ошибка. реализации, поэтому я попробовал PriorityQueue в JCF, и, к моему удивлению, результаты оказались такими же!
Вот тест, который я написал для расчета времени.
public static void main(String[] args) {
PriorityQueue p = new PriorityQueue(200000000); //capacity: 200 Million
int n = 100000000;
for(int i = 0; i < n; i++){
p.offer(100 + Math.random() * 10000);
}
int numOfInsertions = 5;
long start = System.nanoTime();
p.offer(Math.random() * 100); //inserted elements are less than all elements
p.offer(Math.random() * 100);//in the heap, to ensure a full swim all the way up
p.offer(Math.random() * 100);//to the root
p.offer(Math.random() * 100);
p.offer(Math.random() * 100);
long end = System.nanoTime();
System.out.println((end - start)/numOfInsertions);
System.out.println(p.peek()); //ensure that the elements less than 100
//were inserted
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79136574/insertion-to-binary-heap-gets-faster-as-the-size-of-the-heap-gets-larger[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия