 
			
				11.01.2023, 16:47
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от webgraph
			
		
	 | 
 
	| 
		мм что-то не до конца понятно что вы имеете ввиду?))
	 | 
 
	
 
 Вы в первом посте перечислили все операции? 
Если так, то для value (который внутри мэпа по участникам), ненужно другого мэпа с массивом, достаточно set, что бы проверить, есть ли операция с таким value у данного участника  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.01.2023, 16:52
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от webgraph
			
		
	 | 
 
	| 
		Чувствуется, что здесь актуальнее использовать List ?)))
	 | 
 
	
 
 Мне не чувствуется. Все операции только добавить в конец и взять n последних. Ни удалений, ни вставок... Зачем List? Массив прекрасно справится. 
Если вдруг понадобится какой то поиск, то все равно перебор, что у массива, что у списка.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось voraa, 11.01.2023 в 16:54.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.01.2023, 17:06
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.11.2014 
					
					
					
						Сообщений: 186
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от voraa
			 
		
	 | 
 
	
		Мне не чувствуется. Все операции только добавить в конец и взять n последних. Ни удалений, ни вставок... Зачем List? Массив прекрасно справится. 
Если вдруг понадобится какой то поиск, то все равно перебор, что у массива, что у списка.
	 | 
 
	
 
 Может потому что в List быстрее добавляются элементы, чем в Array?)  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось webgraph, 11.01.2023 в 17:10.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.01.2023, 17:13
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от webgraph
			
		
	 | 
 
	| 
		Может потому что в List быстрее добавляются элементы, чем в Array?)
	 | 
 
	
 
 Нет. Это моментальная операция, которую вообще не стоит учитывать. 
(На порядок быстрее, чем всякие переводы из строк в BigInt)  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.01.2023, 17:18
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.11.2014 
					
					
					
						Сообщений: 186
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от voraa
			 
		
	 | 
 
	
		Нет. Это моментальная операция, которую вообще не стоит учитывать. 
(На порядок быстрее, чем всякие переводы из строк в BigInt)
	 | 
 
	
 
 Всмысли нет? хахах)) мы же вместе проводили 100500 тестирований. 
 
Ну а как вы предлагаете ещё хранить BigInt? Все эти данные необходимо ещё и экспортировать, импортировать. Конечно, при импорте актуально сразу в BigInt преобразовывать. Но в конечном-то счете это будет храниться в обычной строке.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.01.2023, 17:36
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от webgraph
			
		
	 | 
 
	| 
		Всмысли нет? хахах)) мы же вместе проводили 100500 тестирований.
	 | 
 
	
 
 Мы проводили сравнение не push, а вставку в середину массива, используя splice  и удаление, и вставку и удаление  со списком. 
Тут список быстрее. Не надо ничего двигать, а только переписать 6 ссылок. 
splice двигает конечную часть массива, освобождая место и меняя все дальнейшие индексы
 
У push просто запись в конец массива. Ничего двигать не надо. 
У shift надо подвинуть весь массив, переписать все индексы 
Вот сравните выполнение 100000 раз push и shift
 
const NA = 100_000;
let arr;
let na = NA;
arr = [];
let s = 'aaaaaa';
console.time('push');
while (na--) arr.push(s);
console.timeEnd('push');
na = NA;
arr = [];
console.time('shift');
while (na--) arr.unshift(s);
console.timeEnd('shift');
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось voraa, 11.01.2023 в 17:41.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.01.2023, 17:41
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.11.2014 
					
					
					
						Сообщений: 186
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от voraa
			 
		
	 | 
 
	
		Мы проводили сравнение не push, а вставку в середину массива, используя splice, и вставку в середину списка. 
Тут список быстрее. Не надо ничего двигать, а только переписать 6 ссылок. 
splice двигает конечную часть массива, освобождая место и меняя все дальнейшие индексы 
 
У push просто запись в конец массива. Ничего двигать не надо. 
У shift надо подвинуть весь массив, переписать все индексы 
Вот сравните выполнение 100000 раз push и shift 
 
const NA = 100_000;
let arr;
let na = NA;
arr = [];
let s = 'aaaaaa';
console.time('push');
while (na--) arr.push(s);
console.timeEnd('push');
na = NA;
arr = [];
console.time('shift');
while (na--) arr.unshift(s);
console.timeEnd('shift');
	 | 
 
	
 
 Да, про Push и Shift — это очевидные вещи. Но если сравнить вставку в Array и вставку в List ?))  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.01.2023, 17:43
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Вставка (в смысле в середину) для списка быстрее. (ну для длинных массивов). 
В конец дописать - массив однозначно быстрее. 
То же для удаления.  
Удалить последний (pop) массив быстрее. Если удалять из середины, то список быстрее 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось voraa, 11.01.2023 в 17:45.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.01.2023, 17:45
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.11.2014 
					
					
					
						Сообщений: 186
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от voraa
			 
		
	 | 
 
	
		Вставка (в смысле в середину) для списка быстрее. (ну для длинных массивов). 
В конец дописать - массив однозначно быстрее.
	 | 
 
	
 
 Причем здесь середина? Мы же добавляли в список в конец. А не в середину.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.01.2023, 17:54
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от webgraph
			
		
	 | 
 
	| 
		Ну а как вы предлагаете ещё хранить BigInt?
	 | 
 
	
 
 Все от величин зависит. 
Если скажем взять обычные целые. Максимальное целое число, которое может быть точно представлено в js -  
Number.MAX_SAFE_INTEGER = 2**53 - 1 = 9,007,199,254,740,991 
16 разрядов однако. 
Может этого будет достаточно?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |