Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 1
Регистрация: 05.12.2010
Сообщений: 51
1

Как лучше всего перемешать массив, чтобы внутренние элементы остались в том же порядке

18.05.2012, 19:30. Показов 1995. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть такой массив :
C#
1
2
3
4
5
6
public static string[,] ARR = new string[,] { 
  { "Row1-Item1", "Row1-Item2", "Row1-Item3" }, 
  { "Row2-Item1", "Row2-Item2", "Row2-Item3" }, 
  { "Row3-Item1", "Row3-Item2", "Row3-Item3" },
  ...
}
Kак лудше всего перемишать, чтобы внутриние елементи остались в томже порядке:

C#
1
2
3
4
5
6
public static string[,] ARR = new string[,] { 
  { "Row3-Item1", "Row3-Item2", "Row3-Item3" },
  { "Row1-Item1", "Row1-Item2", "Row1-Item3" },  
  { "Row2-Item1", "Row2-Item2", "Row2-Item3" },
   ...
}
Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2012, 19:30
Ответы с готовыми решениями:

Массив: Сравнить 2 массива, так чтобы элементы были одинаковыми(не обязательно в том же порядке).
Нужно сравнить 2 массива, так чтобы элементы были одинаковыми(не обязательно в том же порядке)....

Изменить массив так, чтобы элементы остались упорядочены
Решить задачу в консольном режиме:

Массив. Положительные элементы массива а, записанные в том же порядке + отрицательные элементы массива b, записанные в обратном порядке
Из двух массивов а, а, ...., а и b, b, ....., b, создать следующие массивы: 1. Положительные...

Дан массив А размера N. Не изменяя данный массив вывести номера его элементов в том порядке, в котором соответствующие элементы образуют возрастающую
помогите пожалуйста решить задачку по паскалю: Дан массив А размера N. Не изменяя данный...

2
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
18.05.2012, 23:22 2
Цитата Сообщение от Petka Посмотреть сообщение
Kак лудше всего перемишать, чтобы внутриние елементи остались в томже порядке:
Думаю, в данном случае проще было бы воспользоваться массивом массивов, и перемешивать непосредственно сами ссылки, например:
C#
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
class Algorithm
{
    public static void Swap<T>(ref T a, ref T b)
    {
        T t = a;
        a = b;
        b = t;
    }
    
    public static void RandomShuffle<T>(T[] a, int n, System.Random rand)
    {                         
        for(int i = n; i > 1; --i)
            Algorithm.Swap(ref a[i-1], ref a[rand.Next(i)]);                   
    }
}
 
class Program
{           
    public static void Main()
    {   
        string[][] arr = 
        { 
            new string[] { "Row1-Item1", "Row1-Item2", "Row1-Item3" }, 
            new string[] { "Row2-Item1", "Row2-Item2", "Row2-Item3" },
            new string[] { "Row3-Item1", "Row3-Item2", "Row3-Item3" }
        };    
        
        System.Random rand = new System.Random();
         
        for(int i = 1; i <= 5; ++i)
        {
            System.Console.WriteLine("------------{0}", i);            
            Algorithm.RandomShuffle(arr, arr.Length, rand);    
        
            foreach(string[] strArr in arr)
            {
                foreach(string strItem in strArr)            
                    System.Console.Write("{0} ", strItem);
                System.Console.WriteLine();
            }
        }
        
        System.Console.WriteLine();                
    }     
}
0
0 / 0 / 1
Регистрация: 05.12.2010
Сообщений: 51
19.05.2012, 12:51  [ТС] 3
Спасибо, но всё таки написал по своему.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public string[][] shuffleArray(string[][] Arr)
{
    string[][] tempArr = new string[Arr.GetLength(0)][];
    Random rndKey = new Random();
    ArrayList keyList = new ArrayList();
 
    for (int i = 0; i < Arr.GetLength(0); i++)
    {
        GEN_KEY:
        int key = rndKey.Next(0, Arr.GetLength(0));
        if (keyList.Contains(key))
            goto GEN_KEY;
 
        keyList.Add(key);
        tempArr[i] = Arr[key];
    }
 
    return tempArr;
}
0
19.05.2012, 12:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2012, 12:51
Помогаю со студенческими работами здесь

Как лучше всего пробежать все элементы контейнера?
Речь о следующем. Есть vector. Я хочу пробежать все его элементы, но походу я буду проверять...

Перемешать массив в случайном порядке
...доброго времени суток, уважаемые форумчане! Существует ли в классе Array &quot;прямой&quot; метод...

Не изменяя данный массив, вывести номера его элементов в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность
Дан массив A размера N. Не изменяя данный массив, вывести номера его элементов в том порядке, в...

Перемешать матрицу Z(m,n), переставив все её элементы в случайном порядке.
Перемещать матрицу Z(m,n), переставив все её элементы в случайном порядке


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

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