Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Как отсортировать массив?

Как отсортировать массив?
Я
   SpiKe
 
09.01.13 - 17:20
Как отсортировать массив чисел, допустим разделенных пробелом, по возрастанию или убыванию?
 
 
   pessok
 
1 - 09.01.13 - 17:23
пузырьком, например
   pessok
 
2 - 09.01.13 - 17:23
а вообще перегнать в список значений и уже его сортировать :)
   Armando
 
3 - 09.01.13 - 17:24
Домашку задали?
   SpiKe
 
4 - 09.01.13 - 17:24
вопрос на собеседовании был такой, я только учусь ещё
   х86
 
5 - 09.01.13 - 17:25
(0)загрузить колонку в Таблицу значений, отсортировать, выгрузить
   pessok
 
6 - 09.01.13 - 17:25
(5) сурово! :)
   pessok
 
7 - 09.01.13 - 17:25
СписокЗначений (ValueList)
СортироватьПоЗначению (SortByValue)
Синтаксис:

СортироватьПоЗначению(<Направление>)
Параметры:

<Направление> (необязательный)

Тип: НаправлениеСортировки.
Способ сортировки - по возрастанию или по убыванию.
Значение по умолчанию: Возр
Описание:

Сортирует список значений в порядке возрастания или убывания хранимых элементами значений.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Пример:

СписокТиповЦен.СортироватьПоЗначению(НаправлениеСортировки.Возр);
   pessok
 
8 - 09.01.13 - 17:26
и загрузка массива в СЗ

СписокЗначений (ValueList)
ЗагрузитьЗначения (LoadValues)
Синтаксис:

ЗагрузитьЗначения(<МассивЗначений>)
Параметры:

<МассивЗначений> (обязательный)

Тип: Массив.
Массив, содержащий значения для заполнения списка значений.
Описание:

Загружает список значений значениями из переданного массива. При этом все прежние элементы списка удаляются.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Пример:

СписокТиповЦен.ЗагрузитьЗначения(МассивЭлементов);
   acsent
 
9 - 09.01.13 - 17:27
Удиви их реализацией квиксорт ))
   le_
 
10 - 09.01.13 - 17:27
 
 Рекламное место пустует
   SpiKe
 
11 - 09.01.13 - 17:27
спасибо, буду пробовать))
   Утконос
 
12 - 09.01.13 - 17:29
СЗ = Новый СписокЗначений;
СЗ.ЗагрузитьЗначения(МассивНаименований);
СЗ.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
МойМассив = СЗ.ВыгрузитьЗначения();
   DrShad
 
13 - 09.01.13 - 17:31
(8) дело в том что по сабжу не совсем массив :)))
   pessok
 
14 - 09.01.13 - 17:32
(13) ну сначала строку разобрать и поместить в список
   DrShad
 
15 - 09.01.13 - 17:34
(14) а вот это уже настолько же сурово, как с сортировкой в ТЗ - ведь массив можно и в колонку загрузить
   pessok
 
16 - 09.01.13 - 17:37
(15) да никто не против велосипедного кьюсорта, но, имхо, на собеседовании от него просили именно такой вариант :)
   DrShad
 
17 - 09.01.13 - 17:39
(16) за такие вопросы на собеседование на кол нужно сажать
   pessok
 
18 - 09.01.13 - 17:40
(17) это уже десятый вопрос. может его хыр менеджер со списком от бывшего программатора собеседовал
   pessok
 
19 - 09.01.13 - 17:40
со списком вопросов*
   SpiKe
 
20 - 09.01.13 - 17:41
тестировал сам программист, который там работает, дал несколько задачек, одна из которых была эта
остальные решил
   acsent
 
21 - 09.01.13 - 17:42
(16) зато сразу +10 пунктов к крутизне
   GROOVY
 
22 - 09.01.13 - 17:42
В временную таблицу в запрос, запросом сортировать и результат обратно в массив!
   DrShad
 
23 - 09.01.13 - 17:42
(20) беги оттуда
   DrShad
 
24 - 09.01.13 - 17:43
(22) нафейхоа!? Паша, извини, но это уже совсем слишком
   pessok
 
25 - 09.01.13 - 17:43
(21) угу, пм посмотрим на него и решит, что это древний си-кодер, который не вникнет в бизнес-процесс, выдумывая велосипеды
   pessok
 
26 - 09.01.13 - 17:44
(24) зато еще (21) :)
   acsent
 
27 - 09.01.13 - 17:45
(25) так нужно спросить вам чтоб быстро работало или легко читалось. Еще +10 к комуникабельности
   pessok
 
28 - 09.01.13 - 17:45
собственно, ТС, каковы был ТВОЙ ответ?)
   pessok
 
29 - 09.01.13 - 17:45
(27) тут надо спросить не так. надо спросить: "вам средствами 1С, или по-человечески написать?"
   Deon
 
30 - 09.01.13 - 17:46
(28) вручную
   GROOVY
 
31 - 09.01.13 - 17:46
Совсем круто это конечно через внешние источники данных все это замутить!
   DrShad
 
32 - 09.01.13 - 17:46
(29) может получиться epic fail - вдруг тот программист ничего кроме 1С не знает
   ДенисЧ
 
33 - 09.01.13 - 17:47
(31) ВИД - не кошерно. Нужно написать свою ВК для низкоуровнего доступа к бд...
 
 
   pessok
 
34 - 09.01.13 - 17:48
(32) вот это я и имел ввиду в (18)
   х86
 
35 - 09.01.13 - 17:48
(31)я еще знаю дедовский метод сортировки построителем )
   pessok
 
36 - 09.01.13 - 17:48
(33) тогда вообще надо брейнфак заюзать, будет дичь!
   ДенисЧ
 
37 - 09.01.13 - 17:49
(36) это точно, дичь :-)
   Reset
 
38 - 09.01.13 - 17:49
Сз=Новый СписокЗначений;
Сз.ЗагрузитьЗначения(ОбщегоНазанченияИлиКактам.РазложитьСтрокуВМассимПодстрокИликакЕе(ИсходнаяСтрока," "));
Сз.СортироватьПоЗначению();
   Deon
 
39 - 09.01.13 - 17:49
Ещё надо не забыть, что числа могут быть дробными, а т.к. на входе в (0) строка, то необходимо отработать проблему с разделителем - . или ,
   acsent
 
40 - 09.01.13 - 17:50
(29) вот этот вопрос как раз и выдаст старого си кодера с головой
   Reset
 
41 - 09.01.13 - 17:50
(39) вероятно проблема с разделителем решается так:
" допустим разделенных пробелом"
   pessok
 
42 - 09.01.13 - 17:50
(39) по условиям задачи там пробел
   pessok
 
43 - 09.01.13 - 17:50
,----------
[

  ----- ----- ----- ----- ----- ---

  [->+<]>
  [
    [->+<] 
    +>-
 ]
  >>>>> >>>>> + <<<<< <<<<<    

  <[-<]

  ,----- -----
]
   Deon
 
44 - 09.01.13 - 17:50
(41)(42) С разделителем дробной части
   pessok
 
45 - 09.01.13 - 17:51
+(43)
Таким нехитрым способом мы отсортировали цифры.
Несложно модифицировать код, чтобы сортировались почти любые символы, либо выводить цифры по убыванию. Использую эту идею можно сортировать не только цифры, но и 2ух — 3ех значные числа, возможно, позже я напишу об этом.
   Reset
 
46 - 09.01.13 - 17:52
(44)
а ну да, их нужно еще в числа перед сортировкой преобразовать.
   Deon
 
47 - 09.01.13 - 17:53
(46) В условии задачи этого нет. Непонятно, какое возрастание надо для чисел, к примеру, "1 10 100" ?
   Reset
 
48 - 09.01.13 - 17:54
(47) ну да, не сказано про метод сравнения для сортирвки


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует