Страница: 1 | 2 | 3 | 4 | 5 | 
		
		 
			   
			 
			 
			 
			 
			
 
  
		
     
  
    
Вопрос: Удаление дубликатов из массива
     
    
Добавлено: 11.11.05 15:04
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     AsHeS | ICQ: 229759992
 AsHeS | ICQ: 229759992 
      
       
  
 
    
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 66
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 31 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #31
      
Добавлено:  14.11.05 07:32
       
    
       
  
С Микрософт трудно поспорить, они "свои" методы сортировки тоже спионерили где то  
     . Я б конечно посмотрел почему такая большая разница, но никак времени не найду.
. Я б конечно посмотрел почему такая большая разница, но никак времени не найду.
		
	  
			 
	
		 
    
       
    
Номер ответа: 32 
      
Автор ответа: HOOLIGAN
 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
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #33
      
Добавлено:  14.11.05 08:21
       
    
       
  
Наверное пусть лучше GSerg выложит свой архив с данными, а то мы до истины не докопаемся.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 34 
      
Автор ответа: AsHeS
 AsHeS










ICQ: 229759992 
Вопросов: 14
Ответов: 93
      
 Профиль |  | #34
       
Добавлено:  14.11.05 09:48
       
    
       
  
1) Народ , сортировка это конечно хорошо , но мне в первую очередь нужна не сортировка , а удаление дублирущих записей
 
    
2) В массиве не так много записей и скорость выполнения алгоритма не так важна . Мне главное простота исполнения , так как я начинающий программист
		
	  
			 
	
		 
    
       
    
Номер ответа: 35 
      
Автор ответа: GSerg
 GSerg


Вопросов: 0
Ответов: 1876 
      
 Профиль |  | #35
       
Добавлено:  14.11.05 13:02
       
    
       
  
Хрен пойми чё...
 
    
Не могу получить тот же результат, что и вчера, на том же коде :?
Завтра попробовать, что ли? :?
А, так вы расцениваете этот как препирательства?? Тогда конечно, пора закругляться.
Я-то, грешным делом, считал это дискуссией с целью установления истины.
Отсортируй массив.
После этого все дубликаты окажутся рядом, и для их удаления надо будет пройтись по массиву один раз вперёд.
		
	  
			 
	
		 
    
       
    
Номер ответа: 36 
      
Автор ответа: HOOLIGAN
 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
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #37
      
Добавлено:  15.11.05 14:51
       
    
       
  
 
    
 Типичный кстати приём любой лженауки - авторитетное высказывание в надежде что никто его не будет проверять. Хорошо что уважаемый GSerg нас пока торсионным полям не обучает  
		
	  
			 
	
		 
    
       
    
Номер ответа: 38 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #38
      
Добавлено:  15.11.05 16:34
       
    
       
  
HOOLIGAN,
 
    
 кстати впечатление всё равно осталось. Я например не стал твой код себе копировать. Вдруг сглючит в важном месте. Получается он и тебя дискредитировал и доказательств не предоставил. Требую доказательств!  
		
	  
			 
	
		 
    
       
    
Номер ответа: 39 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #39
      
Добавлено:  15.11.05 16:38
       
    
       
  
HOOLIGAN,
 
    
 кстати впечатление всё равно осталось. Я например не стал твой код себе копировать. Вдруг сглючит в важном месте. Получается он и тебя дискредитировал и доказательств не предоставил. Требую доказательств!  
		
	  
			 
	
		 
    
       
    
Номер ответа: 40 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #40
      
Добавлено:  15.11.05 16:43
       
    
       
  
HOOLIGAN,
 
    
 кстати впечатление всё равно осталось. Я например не стал твой код себе копировать. Вдруг сглючит в важном месте. Получается он и тебя дискредитировал и доказательств не предоставил. Требую доказательств!  
		
	  
			 
	
		 
    
       
    
Номер ответа: 41 
      
Автор ответа: HOOLIGAN
 HOOLIGAN

Вопросов: 0
Ответов: 1066
      
 Профиль |  | #41
       
Добавлено:  15.11.05 17:06
       
    
       
  
CyRax 
 
    
Боишься он тебе комп поломает?
 ))))
))))
Вообще-то мне все равно, используешь ты его или нет. Да и код не мой. Алгоритм взят с algolist.manual.ru. Это стандартная реализация qSort. Так что все претензии к изобретателю алгоритма  ))
))
Хотя им пользуются все, это классика. Это от GSerg'а я первый раз услышал, что алгоритм неправильный  
Я его реализовывал на 3 языках, и постоянно использую, никаких нареканий.
Ну раз GSerg запугал тебя, то используй пузырёк, пока я его не запостил. А то потом пузырёк тоже станет неправильным кодом ))
))
		
	  
			 
	
		 
    
       
    
Номер ответа: 42 
      
Автор ответа: CyRax
 CyRax 




Разработчик Offline Client
ICQ: 204447456 
Вопросов: 180
Ответов: 4229
      
 Web-сайт:  
 Профиль |  | #42
      
Добавлено:  15.11.05 17:48
       
    
       
  
Сори, я так думаю на сайте защита от частых постов в одной теме стоит. Вот и забываю всё время паузу между сообщениями сделать.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 43 
      
Автор ответа: AsHeS
 AsHeS










ICQ: 229759992 
Вопросов: 14
Ответов: 93
      
 Профиль |  | #43
       
Добавлено:  18.11.05 16:49
       
    
       
  
Так , с сортировкой разобрался - взял из родной Майкрософтовской книги .
 
    
Но чет у мя все равно ниче не выходит ((( Почему-то в массиве остается только 1 запись . Народ помогите . Мне очень срочно нужна эта функция ! Напишите плз , если кто знает
		
	  
			 
	
		 
    
       
    
Номер ответа: 44 
      
Автор ответа: AsHeS
 AsHeS










ICQ: 229759992 
Вопросов: 14
Ответов: 93
      
 Профиль |  | #44
       
Добавлено:  18.11.05 16:50
       
    
       
  
Так , с сортировкой разобрался - взял из родной Майкрософтовской книги .
 
    
Но чет у мя все равно ниче не выходит ((( Почему-то в массиве остается только 1 запись . Народ помогите . Мне очень срочно нужна эта функция ! Напишите плз , если кто знает
		
	  
			 
	
		 
    
       
    
Номер ответа: 45 
      
Автор ответа: HOOLIGAN
 HOOLIGAN

Вопросов: 0
Ответов: 1066
      
 Профиль |  | #45
       
Добавлено:  18.11.05 18:13
       
    
       
  
Как удалял дубликаты после сортировки?