![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 20.12.2009
Сообщений: 14
|
![]()
Во общем вопрос в следующем, есть два массива:
1) TMPZak: array[1..1000] of String; 2) TMPOrder: array[1..1000] of Integer; Необходимо отсортировать первый массив (TMPZak) по убыванию элементов второго массива (TMPOrder)... Как лучше это сделать при условии что массивы большие по размерности? |
![]() |
![]() |
![]() |
#2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Сортировку одного из массивов (думаю это строки) хотя разницы нет, вывести в отдельный поток, другой массив (если у вас не интерфейсное приложение) сортировать в главном потоке, по окончании синхронизировать с дочерним.
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
так Вы же сами себе ответили, когда тему создавали..
![]() Вы один массив сортировать умеете? вот и сортируйте его по убыванию, хотя бы тем же "пузырьком", но при каждой операции обмена элементов в массиве TMPOrder меняйте порядок в TMPZak. Это если по-простому... Если чуть-чуть сложнее - то можно завести ещё один массив из integer, заполнить его числами от 1 до 1000 (или подозреваю, что 1000 взята с запасом и в какой-то переменной находится число, сколько реально элементов в массивах TMPOrder/TMPZak - тогда до этого числа.) И тогда при сортировке массива TMPOrder одновеременно менять местами элементы не в TMPZak, а в этом TMPZakIndex... надеюсь, идея понятна? Или проиллюстрировать кодом? |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 20.12.2009
Сообщений: 14
|
![]() |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 20.12.2009
Сообщений: 14
|
![]() |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Да не проблема...
вот (код консольный - но ввод/вывод в данном случае для понимания алогоритма не нужны... впрочем, так же как и заполнение массивов... это тоже для алгоритма неважно!) Код:
|
![]() |
![]() |
![]() |
#7 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
Не перестаю удивляться - почему люди не видят под самым носом?
Есть готовый пример - ..\Delphi7\Demos\Threads |
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 20.12.2009
Сообщений: 14
|
![]()
i-количество элементов в массиве
Код:
У нас принято оформлять код специальным тэгом - при помощи кнопочки "#". Вы не знали? Почитайте правила раздела... Модератор Последний раз редактировалось antoha73; 03.01.2010 в 21:09. |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
вроде всё хорошо.
два замечания. 1) вы не забыли проиницилизировать (заполнить) массив TmpZakIndex циферками от 1 до i ??? 2) проверьте, массив TMPOrder отсортировался по убыванию?! 3) если первые два пункта не при чём - давайте код полностью! ДОБАВЛЕНО ААААА! я понял, что у Вас не так!! for indeks:=1 to i do showmessage(inttostr(TMPOrder[TmpZakIndex[indeks]])); TMPOrder ОТСОРТИРОВАН!!! его надо выводить просто по порядку: for indeks:=1 to i do showmessage(inttostr(TMPOrder[indeks])); а в TmpZakIndex порядок НЕСОРТИРОВАННОГО изначально массива (в нашем случае это массив строк -TMPZak: Код:
Последний раз редактировалось Serge_Bliznykov; 03.01.2010 в 17:38. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Слияние двух массивов в Delphi | sauron99 | Помощь студентам | 17 | 03.04.2016 09:37 |
Обращение к таблице одновременно двух AdoQuery | Joe_Tribbiani | БД в Delphi | 1 | 01.06.2009 17:27 |
Деление элементов двух массивов при зад. условиях | Leona_L | Microsoft Office Excel | 6 | 03.04.2009 20:52 |
Перенести общие елементы двух массивов в другой. | leshax | Общие вопросы C/C++ | 1 | 04.02.2009 20:57 |
Выбрать из двух массивов совпадение. | *Иван* | Microsoft Office Excel | 7 | 22.11.2007 21:10 |