0 / 0 / 0
Регистрация: 14.02.2016
Сообщений: 3
1

Сортировка выбором двумерного массива

07.11.2016, 20:19. Показов 1423. Ответов 0

Здравствуйте! Помогите пожалуйста отсортировать элементы матрицы выше прямой(главной) диагонали выбором.
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
46
47
        static int Selection_sort(int[,] a, int n)
        {
            int count = 0;
            for (int k = 0; k < n; k++)
            {
                for (int l = k + 1; l < n; l++)
                {
                    int q = k, r = l, minval = 100;
                    for (int i = k; i < n; i++)
                    {
                        for (int j = l; j < n; j++)
                        {
                            count++;
                            if (i < j)
                            {
                                count++;
                                if (a[i, j] < minval)
                                {
                                    minval = a[i, j]; q = i; r = j;
                                }
                            }
                        }
                    }
                    for (int i = k + 1; i < n; i++)
                    {
                        for (int j = l + 1; j < n; j++)
                        {
                            count++;
                            if (i < j)
                            {
                                count++;
                                if (a[i, j] < minval)
                                {
                                    minval = a[i, j]; q = i; r = j;
                                }
                            }
                        }
                    }
                    c2++;
                    int temp = a[k, l];
                    a[k, l] = a[q, r];
                    a[q, r] = temp;
                }
            }
 
            return count++;
        }
Вот, что у меня написано. Стабильно работает пожалуй только на размерности 3х3, но с 4х4 и чем больше, тем чаще алгоритм дает сбой, а именно: пропускает настоящий минимум в текущем потоке и берет как бы следующий после настоящего минимума.

Добавлено через 7 минут
UPD: Размерность матрицы задается с клавиатуры одним числом (NxN). Массив заполняется случайными элементами. count и c2 - счетчики сравнений и перестановок (если кому интересно).
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2016, 20:19
Ответы с готовыми решениями:

Сортировка массива выбором
Здравствуйте. Можете помочь разобраться, в чём ошибка. Характеристикой столбца целочисленной...

сортировка массива выбором+интерфейс
задание такое:написать программу с простеньким интерфейсом.пользователь вводит элементы массива а...

Сортировка двумерного массива
Подскажите, как отсортировать двумерный массив типа string в порядке убывания

Сортировка двумерного массива
Привет. Есть двумерный массив array = int. Заполнен так: array = 5; array = 0; array =...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2016, 20:19

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

Сортировка двумерного массива
Дана вещественная матрица размером n строк, m столбцов. Для каждого столбца надо найти среднее...

Сортировка двумерного массива
Здравствуйте. Возник вопрос: допустим у меня есть сортировка одномерного массива (например,...

Сортировка двумерного массива
Как отсортировать массив например по 4 столбцу?


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.