| 
	
	
		
		
			
			 
				Какие существуют библиотеки или алгоритмы генерации индексов для сортировки по-порядк
			 
			
		
		
		
		Пример: 
В базе хранится массив  
 
id| sortIndex 
A | 1 
B | 2 
C | 3 
D | 4 
 
Допустим, мы поменяли в нем позицию элемента D. Стало: 
 
id| sortIndex 
A | 1 
D | 2 
B | 3 
C | 4 
 
Мы перестраиваем индексы всех элементов и передаем их на сервер. Или передаем только изменившийся элемент, а сервер сам все перестраивает. Проблема этого способа в том, что в базе будут изменены все элементы. 
 
Можно сделать по-другому, например, так: 
 
id| sortIndex 
A | 1 
D | 1,5 
B | 2 
C | 3 
 
Тут мы вычисляем новый индекс как среднее арифметическое от индекса соседей. Соответственно в базе меняется только один элемент. 
 
Вконтакте для аудиозаписей, вообще, использует не индексы, а ссылки на последующий/предыдущий элементы. Правда, сама сортировка в этом случае будет тяжеловесной (вместо отображения по возрастанию придется бегать по связанному списку). 
 
В общем, кто какие решения знает? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 |