Страница: 1 | 2 |
Вопрос: Функция сортировки массива int
Добавлено: 07.05.07 09:34
Автор вопроса: Black Berill
Возникла необходимость отсортировать массив типа integer (по убыванию),был уверен, что имееться собственная функция VB,перетряс весь хелп - ну нет её!Ладно, думаю, сам(!) напишу.Казалось бы, чего проще - крути себе вложенные циклы и горя не знай.Ан нет, облом - четыре дня мучился, нифига не получилось. Сейчас временно использую для сортинга листбокс,что не есть гуд:)
Вопросы:
1) Есть все-таки собственная функция?
2) Если у кого есть исходник подобной функции, запостите, пжалста!
Ответы
Всего ответов: 24
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 07.05.07 09:41
Ужос.
Почему занимаются программированием люди, не имеющие понятия об алгоритмах сортировки (коих много разных) и не могушие найти ни одной реализации такого алгоритма (в том числе на этом форуме), мне лично непонятно...
Ищи. В гугле. Алгоритмы. Разные. Bubble, shell, quick, insertion, heap, хватит с тебя.
Номер ответа: 2
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #2
Добавлено: 07.05.07 09:56
For i=0 to килькисть z if a(i)<a(i+1) then z a(i)=temp z a(i+1)=a(i) z a(i)=temp z if i>=1 then i=i-1 z next i z не проверял но должно роботать.Напишы если шо
Номер ответа: 3
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #3
Добавлено: 07.05.07 09:57
Васика под рукой нет, пишу по памяти
Dim arInt() As Integer
Dim lngIndex As Long, lngIndex2 As Long, lngCount As Long, intTemp As Integer
lngCount = 500
ReDim arInt(lngCount)
' Заполнить массив
For lngIndex = 0 To lngCount
arInt(CInt(Rnd()*100))
Next
' Сортировать
For lngIndex = 0 To lngCount
For lngIndex = 0 To lngCount
If arInt(lngIndex)<arInt(lngIndex2) Then
intTemp = arInt(lngIndex)
arInt(lngIndex) = arInt(lngIndex2)
arInt(lngIndex2) = intTemp
Else
If arInt(lngIndex)>arInt(lngIndex2) Then
intTemp = arInt(lngIndex2)
arInt(lngIndex2) = arInt(lngIndex)
arInt(lngIndex) = intTemp
End If
End If
Next
Next
Вроде по возрастанию должна сортировать
Номер ответа: 4
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #4
Добавлено: 07.05.07 09:58
Нет... в VB6.0 точно нет
Номер ответа: 5
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #5
Добавлено: 07.05.07 09:59
Блин end if пропустил после а(i)=temp
Номер ответа: 6
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #6
Добавлено: 07.05.07 10:03
Извиняюсь temp=a(i)
Номер ответа: 7
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #7
Добавлено: 07.05.07 10:15
Docal, не начинай
Лучше проверьте работает ли моя реализация. Хоть пузырек САМЫЙ медленный из мне известных, зато самый простой
Номер ответа: 8
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #8
Добавлено: 07.05.07 10:20
А вот кстати и быстрая сортировка (QuickSort) от sne, на VB6.0 и PowerBasic
http://www.vbnet.ru/forum/show.aspx?id=50331
Опять же проверить смогу только PB
Номер ответа: 9
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #9
Добавлено: 07.05.07 10:34
я так как и ты васика при себе не имею
Номер ответа: 10
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #10
Добавлено: 07.05.07 14:30
GSerg, а он щас ответит, что он не профессиональный проггер и потому не может знать про стандартные алгоритмы сортировки.... и так далее...
Docal, и как это должно работать?
Номер ответа: 11
Автор ответа:
Black Berill
Вопросов: 17
Ответов: 151
Профиль | | #11
Добавлено: 07.05.07 21:20
1)Viper, именно так и отвечу .Ну что поделаешь, я не слишком умен, ну уж какой есть.
2)Docal, спасиба.
3)ZagZag, спасиба (сортировка от sne оффигенная!).
4)GSerg, Ужос в том, что своими злобными и оскорбительными ответами такие, как ты отбивают всякую охоту заниматься программированием( в том числе приобретать знания об алгоритмах
сортировки). И поверь мне, если я не использую поиск, на это есть веские причины, хоть они тебе и не понятны...
Номер ответа: 12
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #12
Добавлено: 07.05.07 21:45
ZagZag
опечатался, да?
Номер ответа: 13
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #13
Добавлено: 07.05.07 22:35
For lngIndex = 0 To lngCount
А.. да, должно быть
For lngIndex2 = 0 To lngCount
Номер ответа: 14
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #14
Добавлено: 07.05.07 23:12
хорошая память, общий принцип ясен
Номер ответа: 15
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #15
Добавлено: 08.05.07 00:59
сортировки). И поверь мне, если я не использую поиск, на это есть веские причины, хоть они тебе и не понятны...