Страница: 1 | 2 |
Вопрос: Функция сортировки массива int
Добавлено: 07.05.07 09:34
Автор вопроса: Black Berill
Ответы
Всего ответов: 24
Номер ответа: 16
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #16
Добавлено: 08.05.07 02:15
Если у тебя есть веские причины, чтобы не использовать поиск, то у нас есть веские причины указать тебе на твою неправоту. И язвительные ответы - не самый злой вариант реакции.
Номер ответа: 17
Автор ответа:
Black Berill
Вопросов: 17
Ответов: 151
Профиль | | #17
Добавлено: 08.05.07 12:47
Sharp,сам понял, что сказал?Или просто пытаешься соревноваться со мной в высокопарности высказываний?
Номер ответа: 18
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #18
Добавлено: 08.05.07 13:49
Ему бы лиш посты набивать своим бредом
Номер ответа: 19
Автор ответа:
W[4Fh]LF
Вопросов: 0
Ответов: 187
Web-сайт:
Профиль | | #19
Добавлено: 08.05.07 15:04
Старпёры, вы уже не катируетесь, на фоне нового поколения и гигнатов вроде Docal Ваши посты есть бред
Номер ответа: 20
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #20
Добавлено: 08.05.07 17:28
Ber, если ты не понял, что я сказал, это не значит, что не понял никто, а уж тем более не значит, что это мог не понять я, а только лишь свидетельствует о твоем скудоумии и неумении контролировать себя.
Номер ответа: 21
Автор ответа:
Black Berill
Вопросов: 17
Ответов: 151
Профиль | | #21
Добавлено: 09.05.07 12:59
Боже, Sharp, какой ты умный!!!Мне, сирому и убогому, так не варазиться(
Номер ответа: 22
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #22
Добавлено: 09.05.07 18:22
Не вижу в этом ничего удивительного.
Номер ответа: 23
Автор ответа:
Silver Ferrum
ICQ: 422640045
Вопросов: 12
Ответов: 144
Профиль | | #23
Добавлено: 09.05.07 20:54
хахахаха.. ото отжог аффтар
Номер ответа: 24
Автор ответа:
AxelF
Вопросов: 1
Ответов: 3
Профиль | | #24
Добавлено: 12.05.07 14:48
На счет собственной функции - не знаю, не встречал.
Предлагаю сортировку методом Шелла
Оригинал здесь: http://msdn2.microsoft.com/en-us/library/aa155630(office.10).aspx
А вот мой вариант под особенности твоих переменных
Option Explicit
Dim inrArr() As Integer
Private Sub Command1_Click()
ReDim inrArr(1 To 4)
inrArr(1) = 4
inrArr(2) = 10
inrArr(3) = 1
inrArr(4) = 5
Print "before"
Print inrArr(1)
Print inrArr(2)
Print inrArr(3)
Print inrArr(4)
Call ShellSort(inrArr)
Print "after"
Print inrArr(1)
Print inrArr(2)
Print inrArr(3)
Print inrArr(4)
Erase intArr
End Sub
Private Sub ShellSort(massiv() As Integer)
Dim tempInr As Integer
Dim i As Long, CurPos As Long, GapSize As Long
Dim FirstRow As Long, LastRow As Long, NumRows As Long
FirstRow = LBound(massiv)
LastRow = UBound(massiv)
NumRows = LastRow - FirstRow + 1
Do
GapSize = GapSize * 3 + 1
Loop Until GapSize > NumRows
Do
GapSize = GapSize \ 3
For i = (GapSize + FirstRow) To LastRow
CurPos = i
tempInr = massiv(i)
 o While massiv(CurPos - GapSize) < tempInr
' <-по убыванию, >-по возрастанию
massiv(CurPos) = massiv(CurPos - GapSize)
CurPos = CurPos - GapSize
If (CurPos - GapSize) < FirstRow Then Exit Do
Loop
massiv(CurPos) = tempInr
Next
Loop Until GapSize = 1
End Sub