1018 / 122 / 2
Регистрация: 26.08.2011
Сообщений: 1,155
Записей в блоге: 2
1

Сортировка слов по алфавиту

30.11.2017, 20:00. Показов 2694. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
есть столбец слов
нужно их отсортировать по алфавиту
подскажите алгоритм
До этого сортировал цифры примерно таким образом
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
    First = LBound(mld_unik)
    Last = UBound(mld_unik)
    For i = First To Last - 1
       For j = i + 1 To Last
          If mld_unik(0, i) > mld_unik(j) Then
             Temp = mld_unik(j)
             mld_unik(j) = mld_unik(i)
             mld_unik(i) = Temp
          End If
       Next j
    Next i
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2017, 20:00
Ответы с готовыми решениями:

Сортировка по алфавиту
Здравствуйте помогите отсортировать файл по алфавиту, начиная по второй строки, необходимо сделать...

сортировка по алфавиту
Доброго времени суток форумчане. Столкнулся с проблемой на первый взгляд с простой но чтото завис...

Сортировка по алфавиту
Здравствуйте! Подскажите пожалуйста, у меня есть допустим 2 столбца, где:1 - Фамилия и инициалы. 2...

Сортировка по алфавиту в ComboBox
Люди, как прописать сортировку в комбобоксе по алфавиту? И так, чтоб например после цифры 22, шла...

4
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
30.11.2017, 20:02 2
Цитата Сообщение от AndreA SN Посмотреть сообщение
If mld_unik(0, i) > mld_unik(j) Then
И что ? Это работало ?
0
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
30.11.2017, 20:04 3
AndreA SN, недавно показывал очень простую (но не очень эффективную) сортировку на коллекции, строки 13-17: Поиск аббревиатур
1
oh my god
1454 / 793 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
30.11.2017, 20:18 4
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
44
45
Option Explicit
'Option Compare Text 'Без учета регистра
 
Sub Test()
    ReDim a(0 To 5) As String 'Массив должен быть динамическим, так как он будет перестраиваться (удаление дублей)
    
    a(0) = "340x350x110"
    a(1) = "440x340x300"
    a(2) = "340x220x110"
    a(3) = "440x340x300"
    a(4) = "340x300x220"
    a(5) = "500x400x300"
    
    qSort a, 0, UBound(a) ' Быстрая сортировка
    
'    RemoveDouble a 'Удаление дублей
    
    MsgBox Join(a, vbCrLf) 'Вывод (можно вывести еще кудато там)
    
End Sub
 
Sub qSort(Arr, i&, j&)
    '
    'Сортировка скоростной способ (рекурсия)
    
    Dim ii&, jj&, s$, t$: ii = i: jj = j: s = Arr((ii + jj) \ 2)
    Do Until ii > jj: Do While Arr(ii) < s: ii = ii + 1: Loop: Do While Arr(jj) > s: jj = jj - 1: Loop
        If (ii <= jj) Then t = Arr(ii): Arr(ii) = Arr(jj): Arr(jj) = t: ii = ii + 1: jj = jj - 1
    Loop: Do While i < jj: qSort Arr, i, jj: Exit Do: Loop: Do While ii < j: qSort Arr, ii, j: Exit Do: Loop
End Sub
 
Sub RemoveDouble(Arr)
    '
    'Удаление дублей
    '
    Dim i&, j&
 
    For i = 1 To UBound(Arr)
        If Arr(j) <> Arr(i) Then
            j = j + 1: Arr(j) = Arr(i)
        End If
    Next
    ReDim Preserve Arr(j)
    
End Sub
1
1018 / 122 / 2
Регистрация: 26.08.2011
Сообщений: 1,155
Записей в блоге: 2
01.12.2017, 00:42  [ТС] 5
SoftIce, ошибка там конечно. Но я просто иллюстрировал пузырьковый способ сортировки чисел

Добавлено через 3 часа 38 минут
Казанский, спасибо. Давно не получал подсказок от Вас, Алексей.
Сделал вот такое
Visual Basic
1
2
3
4
5
6
7
8
9
Dim x, cl As New Collection, s$
s = mld_unik(3, 0)
cl.Add s
For i = LBound(mld_unik, 2) To UBound(mld_unik, 2)
    s = mld_unik(3, i)
    For x = 1 To cl.Count
        If s < cl(x) Then cl.Add s, s, Before:=x: Exit For
    Next
Next i
А можно попросить разъяснить - почему не очень эффективная? И как повысить эффективность?

Добавлено через 45 секунд
С ответом задержался... Менталист ну не дает, блин, работать!)))

Добавлено через 2 минуты
Одной из проблем, как я понял, является проблема вероятного наличия дубликатов. В этом случае возникает ошибка неуникальности записи в коллекции. У меня всё решилось просто путем повышения степени уникальности элемента.
0
01.12.2017, 00:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2017, 00:42
Помогаю со студенческими работами здесь

Сортировка массива по алфавиту
Ребят сделал скрин с данной таблицей. так же скрин с моим кодом и результат в таблице. вообщем 2...

Сортировка массива по алфавиту
Добрый день. Помогите пожалуйста сделать программу сортировки по алфавиту. Заранее спасибо.

Сортировка столбца по алфавиту
Здравствуйте! У меня есть рабочий лист с данными (ФИ студента и количество пропусков). Необходимо...

Сортировка букв в строке по алфавиту
Дано: много строк с русскими словами Надо: отсортировать в этих строках буквы по алфавиту, то есть...

Cортировка слов по алфавиту
Пользователь вводит строку и надо ее отсортировать по алфавиту не пользуясь массивом. Заранее...

Сравнение слов по заданному алфавиту
Дан алфавит, состоящий из трех символов: ъ, ь, ы. Нужно составить программу, которая определит...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru