Вопрос сортировки Массива

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
A
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 16.08.2003 (Сб) 11:29

Вопрос сортировки Массива

Сообщение A » 16.08.2003 (Сб) 11:47

Здравствуйте, вот вопрос:
Имеется Массив
Dim Arr(4) as integer
он состоит из 5 рандомальных чисел,
требуется перенести в новый Массив
Dim List(4) as integer
номера индексов массива Arr так что бы значение которые представляют номера возрастали.
Пример:
Значение Arr : 5,9,4,6,8
Новый массив List быть : 2,0,3,4,1
Это вроде не сложно но я не знаю как решить,
может кто поможет?

GoGosha
Постоялец
Постоялец
 
Сообщения: 642
Зарегистрирован: 02.08.2002 (Пт) 9:14
Откуда: Russia

Сообщение GoGosha » 16.08.2003 (Сб) 14:42

Код: Выделить всё

Private Sub Form_Load()
    Dim Arr(4) As Integer
    Dim List(4) As Integer
    Dim Ind As Long
    Dim min1 As Long
    Dim Min2 As Long
    Dim MaxInd As Long
   
    Arr(0) = 5
    Arr(1) = 9
    Arr(2) = 4
    Arr(3) = 6
    Arr(4) = 8
   
    For a = 0 To UBound(Arr)
        min1 = Arr(0) + Arr(1) + Arr(2) + Arr(3) + Arr(4)
        For b = 0 To UBound(Arr)
            If Arr(b) > Min2 And Arr(b) < min1 Then
                min1 = Arr(b)
                MaxInd = b
            End If
        Next b
        List(Ind) = MaxInd
        Ind = Ind + 1
        Min2 = min1
    Next a
   
    For a = 0 To UBound(Arr)
        Print List(a)
    Next a
End Sub
http://poetry.mooo.com
http://poetry.myboard.info
«Человек есть нечто, что до́лжно превзойти» (Ф. Ницше)

A
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 16.08.2003 (Сб) 11:29

Сообщение A » 16.08.2003 (Сб) 16:14

Спасибо, самое быстрое решение Ваше!
Скажите а что надо изменить что бы значение индексов шло с большого до мальенкого?

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 17.08.2003 (Вс) 11:07

Абсолютню все сортировки основаны на сравнении чисел, и эта тоже, хотя алгоритм этой я не знаю.. вижу первый раз.. ну дык вот.. если поменять пару знаков сравнения то получится противоположный рехультат, что и где менять думай сам, не все же тебе разжевать надо и в рот положить =)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 18.08.2003 (Пн) 4:39

Ты не прав, существуют алгоритмы сотртировок без использования сравнения. Область их применения достаточно узка (массив должен обладать парой важных свойств), но, тем не менее, они есть, и скорость у них очень даже.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 18.08.2003 (Пн) 6:05

Ну я имел в виду те сортировки которые сортируют любые массивы...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList