|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
|  | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Сортировка в одномерных массивах Помогите, пожалуйста. Преобразовать одномерный массив, состоящий из n вещественных элементов таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом все остальные. | 
| 
			 
			#2  
			
			
			
			
		 | ||||
| 
 | ||||
|   Код: TArrat.Sort(...) | 
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   стандартная сортировка без учета знака. Т.е. я не вижу смысла в попытках писать оптимизированный алгоритм для такого случая. Просто сравнивать надо по модулю: Код: var
  A : Array Of Double;
procedure SortArrayAbs;
var
  I,J : Integer;
  B : Double;
begin
  For I := Low(A) To High(A)-1 Do
    For J := I+1 To High(A) Do
     If Abs(A[i]) > Abs(A[J]) Then
       Begin
         B := A[i];
         A[i] := A[J];
         A[J] := B;
       End;
end; | 
| 
			 
			#4  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 Интересно, кто придумал деструктивные сортировки? Типа студентов учат (меня в т.ч. тоже так учили) именно на классической деструктивной сортировке. В книге по хаскелю было сразу оговорено: «НЕ НАДО ТАК!» Последний раз редактировалось M.A.D.M.A.N., 02.12.2016 в 08:43. | 
| 
			 
			#5  
			
			
			
			
		 | |||
| 
 | |||
|   Да потому что самый простой для понимания и реализации алгоритм. Понятно, что вызвать заранее написанный QuickSort с передачей компаратора правильнее, но попробуй это преподу объяснить. В лучшем случае заставит самому реализовывать QuickSort... | 
| 
			 
			#6  
			
			
			
			
		 | ||||
| 
 | ||||
|   Не. Деструктивная — в смысле что изменяет входной массив, а не возвращает новый, отсортированный   Ну это так, философский вопрос. | 
| 
			 
			#7  
			
			
			
			
		 | |||
| 
 | |||
|   А, в этом смысле... Ну, опять же, для препода это проще, они к такому привыкли. с другой стороны - это в учебной задаче данных мало... а если данных много? Память не резиновая, а своп сильно замедляет работу... |