• Регистрация
suzuki
suzuki 0.00
н/д

Сортировка матрицы по неубыванию без функции sort

23.04.2020

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

Теги

      23.04.2020

      Ответы

      • aBoomest
        aBoomest+942.89
        24.04.2020 05:00

        Код! В студию!

        • Ответ был удален
          • aBoomest
            aBoomest+942.89
            24.04.2020 18:26

            Алгоритмов много всяких.
            Bubble sort (влоб, безовсяких выкрутасов)

            a = [6; 5; 4; 3];
            Count = length(a);
            for jj = 2 : Count
                for ii = 2 : Count
                    if a(ii-1) > a(ii)
                        tmp = a(ii-1);
                        a(ii-1) = a(ii);
                        a(ii) = tmp;
                    end;
                end;
            end;
          • suzuki
            suzuki0.00
            24.04.2020 21:08

            Благодарю Вас за помощь

            • suzuki
              suzuki0.00
              24.04.2020 21:17

              У меня только один столбец сортируется почему-то.

            • Нгуен Ван Зунг
              Нгуен Ван Зунг+19.83
              24.04.2020 17:53

              clc; clear all;
              a = [2; 5; 1; 3; 4; 6];
              for m = 2 : length(a)
              for n = length(a) : -1 : m
              if a(n-1) > a(n)
              b = a(n-1);
              a(n-1) = a(n);
              a(n) = b;
              end
              end
              end
              a

              • Нгуен Ван Зунг
                Нгуен Ван Зунг+19.83
                24.04.2020 18:06

                clc; clear all;
                a = [2; 5; 1; 3; 4; 6];
                for m = 1 : length(a)
                for n = 1 : length(a) - m
                if a(n) > a(n + 1)
                b = a(n + 1);
                a(n + 1) = a(n);
                a(n) = b;
                end
                end
                end
                a

                • suzuki
                  suzuki0.00
                  24.04.2020 21:08

                  Благодарю Вас за помощь

                  • Нгуен Ван Зунг
                    Нгуен Ван Зунг+19.83
                    25.04.2020 09:35

                    clc; clear all;
                    a = [2 3 3; 5 2 5; 1 5 6; 3 3 4; 4 5 6; 6 2 3];
                    for i = 1:size(a,2)
                    for m = 1 : length(a)
                    for n = 1 : length(a) - m
                    if a(n,i) > a(n + 1,i)
                    b = a(n + 1,i);
                    a(n + 1,i) = a(n,i);
                    a(n,i) = b;
                    end
                    end
                    end
                    end
                    a

                    • Нгуен Ван Зунг
                      Нгуен Ван Зунг+19.83
                      25.04.2020 09:37

                      clc; clear all;
                      a = [2 3 3; 5 2 5; 1 5 6; 3 3 4; 4 5 6; 6 2 3];
                      for i = 1 : size(a,2)
                      for m = 2 : length(a)
                      for n = length(a) : -1 : m
                      if a(n-1,i) > a(n,i)
                      b = a(n-1,i);
                      a(n-1,i) = a(n,i);
                      a(n,i) = b;
                      end
                      end
                      end
                      end
                      a

                       

                • suzuki
                  suzuki0.00
                  24.04.2020 21:17

                  У меня только один столбец сортируется почему-то.

                  • Ответ был удален
                    • aBoomest
                      aBoomest+942.89
                      25.04.2020 07:36

                      М

                      clc; clear all;
                      a = [6; 5; 4; 3; -7; 3445; 6; 1;];
                      disp('Массив a');
                      disp(a);
                      b = BubbleSort(a);
                      disp('Массив b');
                      disp(b);
                      

                      результат

                      Массив a
                                 6
                                 5
                                 4
                                 3
                                -7
                              3445
                                 6
                                 1
                      
                      Массив b
                                -7
                                 1
                                 3
                                 4
                                 5
                                 6
                                 6
                              3445