Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
		
		
			
	
		 
		
			
  
    |   | 
    
Вопрос: сортировка массива строк
     | 
    
Добавлено: 04.07.08 14:03
     | 
      | 
  
		
			
			  
		
			
		
		
			
  
    |   | 
    
Ответы
     | 
    
Всего ответов: 109
     | 
      | 
  
		
	  
	  
	  
	  
	  
	  
    
      
Номер ответа: 21 Автор ответа:
   s12
  
    
  Вопросов: 24 Ответов: 363 
       | 
      
 Профиль |  | #21
       | 
Добавлено:  07.07.08 03:01
       | 
    
    
      | 
 Не видел здесь ни слова про VB6  
 
Ибо сказано в коране "Имеет глаза и не видит, имеет уши и не слышит", по-моему для .нет есть отдельный форум, или я что-то путаю?  
 
 
Крыша по-моему поехала не у меня а у тебя, потому что ТЫ спросил про Array пользовательского типа, а я тебе объяснил как его сортировать, если твой аццкий моск отказывается воспринимать эту информацию ту лучше убей себя об стену потому что второй раз я это объяснять не буду. 
 
 
 
Я не просил объяснять как работать с пользовательскими типами, я просил АЛГОРИТМ СОРТИРОВКИ МАССИВА ТИПА STRING
 
 
Употреблять в одном предложении слова "vb6" и "быстро" - первый шаг к импотенции, или ты начитался статей типа "О бедном бейсике замолвите слово"?  
 
Гм.. это заувалирование признание "я не знаю vb6" или просто так, общественное мнение?
Ответить
        | 
    
  
	  
    
      
Номер ответа: 22 Автор ответа:
   Artyom
  
       
  Разработчик
  Вопросов: 130 Ответов: 6602 
       | 
      
 Профиль |  | #22
       | 
Добавлено:  07.07.08 03:37
       | 
    
    
      
Ибо сказано в коране "Имеет глаза и не видит, имеет уши и не слышит", по-моему для .нет есть отдельный форум, или я что-то путаю?    
 
Я изначально привел код для .NET, ты не стал возражать что тебе он не подходит так как ты пишешь на VB6, из чего можно сделать вывод что ты писал на VB .NET, или просто стал дискутировать уже в этом контексте.
 
 
Я не просил объяснять как работать с пользовательскими типами, я просил АЛГОРИТМ СОРТИРОВКИ МАССИВА ТИПА STRING  
 
Хорошо, может быть мне это приснилось но тогда объясни мне КТО написал ЭТО:
 
 
Хех, а если Array пользовательского типа? (как в моем случае, сортировка нужна по одному из элементов типа string) 
 
Или мне причудилось слово ARRAY ПОЛЬЗОВАТЕЛЬСКОГО ТИПА???? Или может быть Ты марсианин????????? ЧТо-то я не замечал раньше на форуме представителей внеземных расс!!!!!!
 
 
Гм.. это заувалирование признание "я не знаю vb6" или просто так, общественное мнение?  
 
Нет, это завуалированое признание "vb6 СОСЕТ в плане быстродействия и ничего с этим не поделаешь", являющееся общественным мнением.
 
 
Несогласный - отправляйся в бабруйск читать статьи на сайте ("О BASIC замолвите слово" не читай - это "заказуха" ,  писать бенчмарки, на .NET их тут достаточно было написано.
 
 
кончел!!!
 
 
PS ..................
Ответить
        | 
    
  
	  
	  
	  
    
      
Номер ответа: 25 Автор ответа:
   s12
  
    
  Вопросов: 24 Ответов: 363 
       | 
      
 Профиль |  | #25
       | 
Добавлено:  07.07.08 06:31
       | 
    
    
      
По какому делу? Путаница с языками, такое бывает, тут ничего не поделаешь. Про марсианина ты конечно загнул, как ты назовешь такую конструкцию:
 
 
Private Type MyType
 
    sName as String
 
    dDate as Date
 
    lSize as Long
 
End Type
 
Dim aObj(2000) As MyType 'как назвать такой массив?
 
 
 
А это:
 
Нет, это завуалированое признание "vb6 СОСЕТ в плане быстродействия и ничего с этим не поделаешь", являющееся общественным мнением.  
 
Полный бред, вскормленный фанатиками паскаля и дельфоф, во времена 4-5 бейсиков, тогда действительно так и было. Бенчмарки я бы с радостью написал, но знаком с .НЕТ довольно поверхносно (в смысле изучал, но серьезных проектов не писал), а код написанный в vb7-9 аналогично vb6 в 70% случаев выполняется медленнее.
Ответить
        | 
    
  
	  
	  
    
      
Номер ответа: 27 Автор ответа:
   Artyom
  
       
  Разработчик
  Вопросов: 130 Ответов: 6602 
       | 
      
 Профиль |  | #27
       | 
Добавлено:  07.07.08 16:31
       | 
    
    
      | 
 Private Type MyType 
 
    sName as String 
 
    dDate as Date 
 
    lSize as Long 
 
End Type 
 
Dim aObj(2000) As MyType 'как назвать такой массив?  
 
Это другое дело, я с VB6 не работаю и встроенных простых средств для сортировки подобнго там насколько я помню нет.
 
 
Полный бред, вскормленный фанатиками паскаля и дельфоф, во времена 4-5 бейсиков, тогда действительно так и было. 
 
В прошлом фанатик VB6, сейчас работаю с VB .NET. К сожалению это так и с этим ничего не поделаешь.
 
Кроме того еще ряд ограничений не позволяют выжать больше на современных компьютерах, оснащенных многоядерными процессорами.
 
Развитие языка остановилось 10 лет назад (не считая сервиспаки, но это скорее правки багов а не развитие)
 
 
Бенчмарки я бы с радостью написал, но знаком с .НЕТ довольно поверхносно (в смысле изучал, но серьезных проектов не писал), 
 
От тебя требуется только код, написанный на VB6
 
 
а код написанный в vb7-9 аналогично vb6 в 70% случаев выполняется медленнее.  
 
Серьезно?
 
Код написанный в VB6 аналогично VB7-9 в 100% случаев выдает ошибку компиляции - шутка ли?
Ответить
        | 
    
  
	  
    
      
Номер ответа: 28 Автор ответа:
   Artyom
  
       
  Разработчик
  Вопросов: 130 Ответов: 6602 
       | 
      
 Профиль |  | #28
       | 
Добавлено:  07.07.08 16:51
       | 
    
    
      | 
 Dim iTest As Long, i As Long 
 
Dim mMax As Single, mMin As Single 
 
Dim tArr(1000000) As Single 
 
Randomize Timer 
 
    [b]iTest = timeGetTime [/b]    mMax = 12000000000.45 
 
    mMin = -24000000.098 
 
    lLen = Len(tArr(0)) 
 
    For i = 0 To 1000000 
 
        tArr(i) = ((Rnd * mMax) - mMin) 
 
    Next 
 
    MsgBox timeGetTime - iTest 
 
Что это за прикол? Почему не учитывается время не выделение памяти? Или считаешь что оно равно 0?
 
 
Вот мой код:
 
 
        For j = 0 To 10
 
            Dim start = DateTime.Now
 
            Dim MyArr(CInt(1 * 10 ^ j - 1)) As Single
 
            Dim Random As New Random
 
            Dim Max As Single = 12000000000.45
 
            Dim Min As Single = -24000000.098
 
 
            For i = 0 To MyArr.Length - 1
 
                MyArr(i) = (Random.Next * Max) - Min
 
            Next
 
            Console.WriteLine("{0} элементов: {1} сек", MyArr.Length, Now.Subtract(start))
 
        Next
 
        Console.ReadLine() 
 
 
Результаты работы:
 
1 элементов: 00:00:00.0010000 сек
 
10 элементов: 00:00:00 сек
 
100 элементов: 00:00:00 сек
 
1000 элементов: 00:00:00 сек
 
10000 элементов: 00:00:00 сек
 
100000 элементов: 00:00:00.0020000 сек
 
[b]1000000 элементов: 00:00:00.0270000 сек[/b]
 
10000000 элементов: 00:00:00.2580000 сек
 
100000000 элементов: 00:00:02.6150000 сек
 
Дальше не идет - вылетает System.OutOfMemoryException 
 
Если мосмотреть последние 4 теста, видно практически линейное увеличение скорости.
 
 
Те 1000000 которые прогонял ты у меня выполняются 0.027 секнд.
 
 
Можешь проверить на скоем компьютере, у меня лично VB6 нет, жду пока мне скомпилируют и пришлют программу.
 
 
Даже не использую дополнительную оптимизацию в vb6 выйгрыш получается около 100 мс. 
 
Выигрыш... Между чем и чем?
 
 
100 мс - что это? На каком времени выигрыш?
 
 
Выигрыш 100мс при общем времени 200 мс - это круто, выигрыш 100 мс при общем времени 5 мин - это трата денег работодателя (он бы больше выиграл если бы заплатил не 50 баксов за эту "оптимизацию", а установив процессор, дороже на 50 баксов.
Ответить
        | 
    
  
	  
	  Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
 
		
			Поиск по форуму