angry_one
27.05.2007 2:00
Прошу в общих чертах описать, что должно происходить при таком варианте сортировки. Лекцию я видимо по этой теме пропустил, а прогу писать надо

То есть именно не кусок кода, а чисто теоретически описать эту страшгую вещь. Все-таки писать прогу самому хочется.
angry_one
27.05.2007 2:42
прошу прощения за создание этой темы. Нашел все, что мне нужно в FAQ'e.
angry_one
27.05.2007 3:09
так, стадия 3, скажите, это оно:
Создается массив записей и сортируется пузырьком по полю, содержащему скажем грузоподъемность трактора.
Это и есть "Индексная сортировка линейным методом"?
Не совсем... Индексная сортировка - это когда сортируется не сам массив данных (он как раз остается в неприкосновенности), а массив индексов... Т.е., если исходный массив имеет вид A = <1, 3, 5, 2, 4>
и соответственно, индексный массив в начале - ix = <1, 2, 3, 4, 5> (просто индексы от 1 до длины_массива), то в результате сортировки массив данных неизменен, а массив индексов примет вид: ix = <1, 4, 2, 5, 3>, то есть если распечатать значения A[ix[i]], то они будут отсортированы по возрастанию...
о, кажется понял. Спасибо.
ребят, еще один вопрос возник:
можно ли задать формат вывода на экран чисел ЦЕЛОГО типа, аналогичным образом, каким он происходит с вещественными(:5:2 условно)? Нужно в таблице вывести число от 0 до 999, но границы таблицы меняются из-за того, что разное разное количество символов под разные числа. Было бы замечательно, если бы можно было выделить под это число 3 знака и они бы уже заполнялись, не двигая границы таблицы
кстати вот моя реализация сабжевого вопроса темы:
For j:=1 to i do{заполнение массива индексов}
mInd[j]:=j;{}
For j:=1 to i do{цикл изменения массива индексов в соответствии с требуемым}
For k:=1 to i do begin
If tplane[mind[j]].pass>tplane[mind[k]].pass then
begin
buf:=mind[j];
mind[j]:=mind[k];
mind[k]:=buf;
end;
end;
Цитата(Гость @ 27.05.2007 22:19)

ребят, еще один вопрос возник:
можно ли задать формат вывода на экран чисел ЦЕЛОГО типа, аналогичным образом, каким он происходит с вещественными(:5:2 условно)? Нужно в таблице вывести число от 0 до 999, но границы таблицы меняются из-за того, что разное разное количество символов под разные числа. Было бы замечательно, если бы можно было выделить под это число 3 знака и они бы уже заполнялись, не двигая границы таблицы
Write (i:3);
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.