Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/98: Рейтинг темы: голосов - 98, средняя оценка - 4.80
2 / 2 / 0
Регистрация: 28.03.2010
Сообщений: 29

Сортировка массива чисел по возрастанию

12.04.2010, 14:52. Показов 20123. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан. Следующий код. Но его надо изменить так, чтобы он сравнивал не просто все подряд числа, а отсортировывал только то, что осталось от массива чисел. Пример на скрине.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Private Sub Command1_Click()
Label1.Caption = " "
Label2.Caption = Label1.Caption
Label1.Font.Size = 18
Label2.Font.Size = Label1.Font.Size
Dim massive(9) As Long, i As Integer, J As Integer, N As Integer, Tmp As Double
Randomize (Time)
For i = 0 To 9
massive(i) = Rnd() * 10
Next i
For i = 0 To 9
Label1.Caption = Label1.Caption & massive(i) & Space(3)
Next i
 
 
N = 9
For i = 0 To N - 1
For J = i To N
  If massive(i) < massive(J) Then
               Tmp = massive(J)
               massive(J) = massive(i)
               massive(i) = Tmp
            End If
        Next J
Label2.Caption = Label2.Caption & massive(i) & Space(3)
Next i
Label2.Caption = Label2.Caption & massive(N)
End Sub
Миниатюры
Сортировка массива чисел по возрастанию  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.04.2010, 14:52
Ответы с готовыми решениями:

Сортировка массива чисел по возрастанию
Здравствуйте, форумчане! Я не учусь на программиста и поэтому я здесь. Нужно, чтобы в лэйбл1 выводился рандомный массив чисел, а в лэйбл2...

Сортировка одномерного массива по возрастанию
помогите написать программку для сортировки одномерного массива по возрастанию

Сортировка массива по возрастанию методом вставки
Здравствуйте такая ситуация, мне нужна помощь в небольшом пояснении метода сортировки вставкой Вот допустим я сгенерировал исходный...

20
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
12.04.2010, 15:14
На сколько я понял,Вам нужен алгоритм сортировки "выбором элемента".
Тогда код сортировки такой:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim r As Integer, k As Integer
Dim i, j
For i = 2 To N
For j = 1 To i - 1
If massive(j) > massive(i) Then
r = massive(i)
For k = i To j + 1 Step -1
massive(k) = massive(k - 1)
Next k
massive(j) = r
End If
Next j
Next i
0
2 / 2 / 0
Регистрация: 28.03.2010
Сообщений: 29
12.04.2010, 15:20  [ТС]
Нет, Ваш код показывает самое большое число в лэйбл2, а нужно, чтобы получалось так же, как в приведенном коде, только запись другая.
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
12.04.2010, 15:49
Вы издеваетесь?) Как самое большое?)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim r As Integer, k As Integer
Dim i, j
For i = 2 To N
For j = 1 To i - 1
If massive(j) > massive(i) Then
r = massive(i)
For k = i To j + 1 Step -1
massive(k) = massive(k - 1)
Next k
massive(j) = r
End If
Next j
Next i
'Допишите ещё 1 цикл
For i=1 to N
Label2=Label2 & massive(i) & Space(3)
next i
У меня он нормально отсортировал массив
0
2 / 2 / 0
Регистрация: 28.03.2010
Сообщений: 29
12.04.2010, 15:57  [ТС]
Спасибо большое! Был ты рядом, денег кинул на телефон))
А можете нарисовать на бумажке блок-схему к этой части кода?
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
12.04.2010, 16:20
Можете на Web-Money кинуть
Блок-схема...ммм..ну думаю как-то так:
Миниатюры
Сортировка массива чисел по возрастанию  
1
2 / 2 / 0
Регистрация: 28.03.2010
Сообщений: 29
12.04.2010, 16:23  [ТС]
Номер в лс, попрошу друга закинуть.
0
0 / 0 / 0
Регистрация: 24.06.2014
Сообщений: 10
24.06.2014, 21:13
Добрый день . Помогите пожалуйста нужен код в бейсике. Для сортировки массива (метод пузырька)на большое число
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38194 / 21127 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
24.06.2014, 21:23
Что значит "сортировка на большое число"?
0
0 / 0 / 0
Регистрация: 24.06.2014
Сообщений: 10
24.06.2014, 21:45
YuraAAA, добрый день помогите

Добавлено через 1 минуту
сказали что бы массив 2.5 милиона отсортировал за 2.5 минуты

Добавлено через 1 минуту
може ли помоч

Добавлено через 59 секунд
могу скинуть код какойя написал

Добавлено через 6 минут
Dim m(10) что бы заместо 10 бало 2.5 милиона

Добавлено через 10 минут
поможите
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
24.06.2014, 23:18
https://www.cyberforum.ru/post6285971.html

Добавлено через 3 минуты
Ограничений по величине массива нет, а алгоритм быстрой сортировки,
два миллиона чисел отсортирует менее чем за секунду
0
0 / 0 / 0
Регистрация: 24.06.2014
Сообщений: 10
24.06.2014, 23:22
А можно код
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
24.06.2014, 23:22
Цитата Сообщение от goga Посмотреть сообщение
А можно код
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Option Explicit
'
'   © Антихакер32™
'
'1. Дан ряд символов. Создать одномерный массив, элементами которого есть слова данной строки.
'2. Отсортировать массив по возрастанию.
'3. Организовать поиск в отсортированном массиве.
Dim j$()
 
Private Sub Form_Activate()
    Dim s$, f&, u&
    'Для примера берём какой-либо текст
    s = "Дан ряд символов. Создать одномерный массив, элементами которого есть слова данной строки."
    j = Split(LCase(s)): u = UBound(j) 'Разбиваем на слова
    qSort 0, u: Cls 'Быстро сотрируем и выводим отсортированный список
    For f = 0 To u: Print f & " " & j(f): Next
    Print
    Print "Ищем слово одномерный"
    f = Find("одномерный")
    Print "Находим " & f & " позицию в списке = [" & j(f) & "]"
End Sub
Public Function Find&(Elm$)
    Dim max&, f&
    max = UBound(j)
    For f = 0 To Log(max - 1) / Log(2) + 1
        Find = (Find + max) \ 2
        If Elm > j(Find) Then
            Find = Find + 1
        ElseIf Elm < j(Find) Then max = Find - 1
        Else: Exit Function
        End If
    Next
    Find = -1
End Function
Private Sub qSort(ByVal low As Long, ByVal high As Long)
    Dim I As Long, L As Long, M As String, wsp As String
    I = low: L = high: M = j((I + L) \ 2)
    Do Until I > L: Do While j(I) < M: I = I + 1: Loop: Do While j(L) > M: L = L - 1: Loop
        If (I <= L) Then wsp = j(I): j(I) = j(L): j(L) = wsp: I = I + 1: L = L - 1
    Loop
    If low < L Then qSort low, L
    If I < high Then qSort I, high
End Sub
0
0 / 0 / 0
Регистрация: 24.06.2014
Сообщений: 10
24.06.2014, 23:40
Только код и скин формы

Добавлено через 11 минут
сколь по цене

Добавлено через 1 минуту
забыл с генератором случайных чисел

Добавлено через 3 минуты
на коде ни че не понял . извини если что не так просто я в информатике 0
0
0 / 0 / 0
Регистрация: 24.06.2014
Сообщений: 10
24.06.2014, 23:59
блин я тут недавно не знаю как личным сообщение отправлять
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
25.06.2014, 00:28
вот ссыль: https://www.cyberforum.ru/priv... m&u=445967
и еще ссыль которая у меня в подписи..
0
0 / 0 / 0
Регистрация: 24.06.2014
Сообщений: 10
25.06.2014, 00:38
Не могу написать. Вобщем надо генератор случайных чисел потом сортировку код и скины формы со всеми кнопками

Добавлено через 3 минуты
Мне надо это завтра к 9 утра
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
25.06.2014, 00:58
ищи на форуме, здесь много примеров есть..
Visual Basic
1
2
3
4
dim j$(): s$
randomize timer
for f=0 to 2500000: s=s & str(fix (rnd*2^30)):next
j=split(mid$(s,2)) 'Получаем массив величиной 2500000 с рассбросом чисел от 0 до 1073741824
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38194 / 21127 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
25.06.2014, 11:14
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Сортировка подсчетом. Работает значительно быстрее.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub Task()
Dim X(1 To 2500000) As Integer
    Randomize
    For i& = 1 To 2500000
        X(i&) = Rnd * 300
    Next i&
    For i& = 20000 To 20400
        Debug.Print X(i&)
    Next i&
    SortCount X
    For i& = 20000 To 20400
        Debug.Print X(i&)
    Next i&
End Sub
 
Sub SortCount(X() As Integer)
Dim Y(0 To 300) As Long
    For i& = 1 To UBound(X, 1)
        j& = X(i&)
        Y(j&) = Y(j&) + 1
    Next i&
    k& = 1
    For j& = 0 To 300
        If Y(j&) > 0 Then
           For i& = 1 To Y(j&)
               X(k&) = j&
               k& = k& + 1
           Next i&
        End If
    Next j&
End Sub
2
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
25.06.2014, 11:16
goga, https://www.cyberforum.ru/abou... 82784.html.
В зависимости от количества сообщений, пользователи форума имеют следующие права:
До 5 сообщений и менее 2 дней на форуме.
...
Запрещено:
...
отправка личных сообщений,
...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.06.2014, 11:16
Помогаю со студенческими работами здесь

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

Сортировка массива целых чисел по возрастанию
Отсортировать заданный массив целых чисел А(I) в порядке возрастания их значений. I=1,2,...,10. В ассемблере я полный 0, прошу помощи,...

Сортировка по возрастанию (убыванию) массива из N вещественных чисел
Описать программу SortInc (A,N) (SortDec (A,N)), выполняющую сортировку по возрастанию (убыванию)массива А из N вещественных чисел. Массив...

Сортировка массива строк по алфавиту и возрастанию чисел
Здравствуйте. Есть строки в массиве: L_1_Dune-2-DOS.ogg L_2_Dune-2-DOS.ogg L_3_Dune-2-DOS.ogg L_4_Dune-2-DOS.ogg ...

Сортировка одномерного массива целых чисел по возрастанию методом быстрой сортировки
Написать программу для сортировки одномерного массива целых чисел по возрастанию методом быстрой сортировки. Размерность массива, а также...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru