powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Нужна помощь в сортировке коллекции
7 сообщений из 7, страница 1 из 1
Нужна помощь в сортировке коллекции
    #39932504
Имеется Массив данных List(Of T)
Нужно сортировать коллекцию таким образом:

0,1,2,3,4,5,6,7,8,9
0,1,2,3,4,5,6,7,9,8
0,1,2,3,4,5,6,8,7,9
0,1,2,3,4,5,6,8,9,7
.......
9,8,7,6,5,4,3,2,1,0

где 0,1,2,3,4,5,6,7,8,9 это индексы массива.

Коллекция может быть любого размера.
Как это реализовать?
...
Рейтинг: 0 / 0
Нужна помощь в сортировке коллекции
    #39932510
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть на входе есть массив, а на выходе нужно получить массив массивов, правильно я понял?
...
Рейтинг: 0 / 0
Нужна помощь в сортировке коллекции
    #39932511
Shocker.Pro, да получается
...
Рейтинг: 0 / 0
Нужна помощь в сортировке коллекции
    #39932513
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Нужна помощь в сортировке коллекции
    #39932520
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нормально требуемый алгоритм сортировки опишите,
...
Рейтинг: 0 / 0
Нужна помощь в сортировке коллекции
    #39932521
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes
нормально требуемый алгоритм сортировки опишите,
Как я понял, если по-русски, ТС нужно получить последовательность всех перестановок в массиве, отсортированную по возрастанию "номиналов" индексов.
...
Рейтинг: 0 / 0
Нужна помощь в сортировке коллекции
    #39932642
Спасибо за помощь. Нашёл код на VBA и переделал на vb.net:

Код: vbnet
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.
46.
47.
48.
49.
50.
51.
52.
53.
54.
Class Перестановка
    Inherits List(Of List(Of Integer))
    Dim a() As Integer
    Private Sub New(ByVal n As Integer)
        ReDim a(0 To n - 1) : For j = 0 To n - 1 : a(j) = j + 1 : Next j
        Do
            Me.Add(a.ToList)
        Loop Until Перестановка(n) = 0
    End Sub
    Function Перестановка(ByVal n As Integer) As Integer
        Dim i As Integer, k As Integer, t As Integer, tmp As Integer
        k = n - 2
        Do While k >= 0
            If a(k) < a(k + 1) Then Exit Do
            k -= 1
        Loop
        If k = -1 Then
            Return 0
            Exit Function
        End If
        t = n - 1
        Do While t >= k + 1 And a(k) >= a(t)
            t -= 1
        Loop
        tmp = a(k) : a(k) = a(t) : a(t) = tmp
        For i = k + 1 To (n + k) \ 2
            t = n + k - i
            tmp = a(i) : a(i) = a(t) : a(t) = tmp
        Next i
        Return i
    End Function

    Dim Сорт As Integer = 0
    Private Function СортироватьТаблицу(ByVal Таб As Таблица) As Boolean
        Dim Группа = From z In Таб.Строки Order By z.Заказ Ascending Group By z.Заказ Into Count()
        Dim Сч As Integer = -1
        For Each Item In Группа
            Сч += 1
            Dim Заказ As Integer = Item.Заказ
            Dim НовыйID As Integer = Me.Item(Сорт)(Сч)
            Dim s As List(Of Таблица.Строка) = Таб.Строка.FindAll(Function(x) x.Заказ = Заказ)
            For Each Item2 In s
                Item2.Пачка = НовыйID
            Next
        Next
        Сорт += 1
        If Сорт < КолГрупп.Count Then
            Return True
        Else
            Сорт = 0
            Return False
        End If
    End Function
End Class
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Нужна помощь в сортировке коллекции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]