Страница: 1 | 2 | 3 | 4 | 5 |
Вопрос: Удаление дубликатов из массива
Добавлено: 11.11.05 15:04
Автор вопроса: AsHeS | ICQ: 229759992
Ответы
Всего ответов: 66
Номер ответа: 31
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #31
Добавлено: 14.11.05 07:32
С Микрософт трудно поспорить, они "свои" методы сортировки тоже спионерили где то . Я б конечно посмотрел почему такая большая разница, но никак времени не найду.
Номер ответа: 32
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #32
Добавлено: 14.11.05 08:10
Любезный, вы ошибаетесь! Посмотрели бы в листбокс, специально вставил его, чтобы видно было.
Если лень в листбокс смотреть, можно после цикла заполнения листа поставить простенький цикл проверки
If (arr(i) > arr(i + 1)) Then MsgBox arr(i), vbCritical
Next i
Грешным делом даже поверил было, раз 30-40 проверил: а ведь нормально сортируется )
Так что ни отсортировать, ни даже проверить сортированое толком не можете.
Либо предоставляете заведомо ложную информацию.
В общем надоели эти препирательства. Можете сортировать хоть пузырьком, наворачивая дополнительные тормоза и препоны. У автора вопроса есть информация к размышлению - пусть размышляет.
Успехов!
Номер ответа: 33
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #33
Добавлено: 14.11.05 08:21
Наверное пусть лучше GSerg выложит свой архив с данными, а то мы до истины не докопаемся.
Номер ответа: 34
Автор ответа:
AsHeS
ICQ: 229759992
Вопросов: 14
Ответов: 93
Профиль | | #34
Добавлено: 14.11.05 09:48
1) Народ , сортировка это конечно хорошо , но мне в первую очередь нужна не сортировка , а удаление дублирущих записей
2) В массиве не так много записей и скорость выполнения алгоритма не так важна . Мне главное простота исполнения , так как я начинающий программист
Номер ответа: 35
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #35
Добавлено: 14.11.05 13:02
Хрен пойми чё...
Не могу получить тот же результат, что и вчера, на том же коде :?
Завтра попробовать, что ли? :?
А, так вы расцениваете этот как препирательства?? Тогда конечно, пора закругляться.
Я-то, грешным делом, считал это дискуссией с целью установления истины.
Отсортируй массив.
После этого все дубликаты окажутся рядом, и для их удаления надо будет пройтись по массиву один раз вперёд.
Номер ответа: 36
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #36
Добавлено: 14.11.05 13:45
Не будет подтверждения неправильности приведенного мной алгоритма, хоть сегодня, хоть завтра. Потому что в коде все правильно. Я его проверил тремя способами:
1. Проверка массива поиндексным сравнением
If (arr(i) > arr(i + 1)) Then MsgBox arr(i), vbCritical
Next i
2. Проверка массива путем поиндексного сравнения с другим сортированным массивом, который получен от нерекурсивного метода
If (Arr(i) <> MyArr(i - 800)) Then MsgBox Arr(i), vbCritical
Next i
3.Сохранением в файл и просмотром файла.
Ни один из способов проверки ни разу не выявил ошибки. Думаю, на этом можно вопрос правильности закрыть.
Что касается установления истины:
Предположение, что рекурсивный способ в VB будет работать в 50 раз медленее нерекурсивного, основано на результатах работы неправильно спроектированного кода. Что наглядно подтверждено приведенным мной стандартным вариантом quick_sort.
То, что нерекурсивный способ при одинаково грамотной реализации окажется быстрее, никто не отрицает. Но не в 50 раз. И не только в VB.
Чтобы установить, во сколько раз на самом деле разница, нужно реализовать нерекурсивный способ грамотно, т.к. приведенная реализация QuickSortNonRecursive весьма далека от оптимальной, о чем косвенно говорит тот факт, что даже рекурсивный способ оказался быстрее.
Так что, если есть желание установить истину, пишите новую реализацию QuickSortNonRecursive, которая окажется быстрее. А существующая даже не дотягивает до приведенной мной рекурсивной.
И тогда мы сравним и посчитаем, что и во сколько раз быстрее.
Номер ответа: 37
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #37
Добавлено: 15.11.05 14:51
Типичный кстати приём любой лженауки - авторитетное высказывание в надежде что никто его не будет проверять. Хорошо что уважаемый GSerg нас пока торсионным полям не обучает
Номер ответа: 38
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #38
Добавлено: 15.11.05 16:34
HOOLIGAN,
кстати впечатление всё равно осталось. Я например не стал твой код себе копировать. Вдруг сглючит в важном месте. Получается он и тебя дискредитировал и доказательств не предоставил. Требую доказательств!
Номер ответа: 39
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #39
Добавлено: 15.11.05 16:38
HOOLIGAN,
кстати впечатление всё равно осталось. Я например не стал твой код себе копировать. Вдруг сглючит в важном месте. Получается он и тебя дискредитировал и доказательств не предоставил. Требую доказательств!
Номер ответа: 40
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #40
Добавлено: 15.11.05 16:43
HOOLIGAN,
кстати впечатление всё равно осталось. Я например не стал твой код себе копировать. Вдруг сглючит в важном месте. Получается он и тебя дискредитировал и доказательств не предоставил. Требую доказательств!
Номер ответа: 41
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #41
Добавлено: 15.11.05 17:06
CyRax
Боишься он тебе комп поломает?
))))
Вообще-то мне все равно, используешь ты его или нет. Да и код не мой. Алгоритм взят с algolist.manual.ru. Это стандартная реализация qSort. Так что все претензии к изобретателю алгоритма ))
Хотя им пользуются все, это классика. Это от GSerg'а я первый раз услышал, что алгоритм неправильный
Я его реализовывал на 3 языках, и постоянно использую, никаких нареканий.
Ну раз GSerg запугал тебя, то используй пузырёк, пока я его не запостил. А то потом пузырёк тоже станет неправильным кодом))
Номер ответа: 42
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #42
Добавлено: 15.11.05 17:48
Сори, я так думаю на сайте защита от частых постов в одной теме стоит. Вот и забываю всё время паузу между сообщениями сделать.
Номер ответа: 43
Автор ответа:
AsHeS
ICQ: 229759992
Вопросов: 14
Ответов: 93
Профиль | | #43
Добавлено: 18.11.05 16:49
Так , с сортировкой разобрался - взял из родной Майкрософтовской книги .
Но чет у мя все равно ниче не выходит ((( Почему-то в массиве остается только 1 запись . Народ помогите . Мне очень срочно нужна эта функция ! Напишите плз , если кто знает
Номер ответа: 44
Автор ответа:
AsHeS
ICQ: 229759992
Вопросов: 14
Ответов: 93
Профиль | | #44
Добавлено: 18.11.05 16:50
Так , с сортировкой разобрался - взял из родной Майкрософтовской книги .
Но чет у мя все равно ниче не выходит ((( Почему-то в массиве остается только 1 запись . Народ помогите . Мне очень срочно нужна эта функция ! Напишите плз , если кто знает
Номер ответа: 45
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #45
Добавлено: 18.11.05 18:13
Как удалял дубликаты после сортировки?